我有一个工作表,其中列出了连续 14 年的年份,其中包含低于年份的各种值。我想要一个用户输入单元格,他们可以在其中输入他们想要查看的年数,同时隐藏剩余的列。我知道这个代码一定很简单,但我似乎很难思考如何实际编码这个。我尝试了以下方法:
Sub HideCol()
Range("F14").Select
yearSelect = Range("J8").Value
numrows = Selection.Rows.Count
numCols = Selection.Columns.Count
Selection.Resize(numrows + 0, numCols + yearSelect).Select
Selection.EntireColumnHidden = True
End Sub
我真的认为我是在调整大小的反转之后,这意味着我隐藏了选定的区域而不是隐藏了其余的列。先感谢您,
如果我正确理解您的问题,请将您的年份输入单元格更改为 F 列之前的另一列,否则,您将面临隐藏输入单元格的风险:)
然后将此代码放在数据所在的工作表模块中。根据数据的需要对代码进行范围调整。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Me.Range("D8").Address Then 'i moved input cell to D8
Application.ScreenUpdating = False
Range("F14:Z14").EntireColumn.Hidden = False 'this range is the total for the number of years you have
Dim hideYears As Range
Set hideYears = Me.Range("F14").Offset(0, Target.Value)
Set hideYears = Range(hideYears, hideYears.End(xlToRight))
hideYears.EntireColumn.Hidden = True
End If
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句