基于单元格值使用VBA在Excel中隐藏列的范围
我需要在excel中使用宏隐藏一系列单元格。C11包含我需要从中开始隐藏列的列索引基于单元格值使用VBA在Excel中隐藏列的范围,excel,vba,Excel,Vba,我需要在excel中使用宏隐藏一系列单元格。C11包含我需要从中开始隐藏列的列索引 Sub test() Dim i As Integer Dim j As Integer Dim rocket As Range i = Range("c11").Value j = 12 rocket = Range(Cells(5, i), Cells(5, j)) Range("Rocket").Select Selection.EntireColumn.Hidden = True En
Sub test()
Dim i As Integer
Dim j As Integer
Dim rocket As Range
i = Range("c11").Value
j = 12
rocket = Range(Cells(5, i), Cells(5, j))
Range("Rocket").Select
Selection.EntireColumn.Hidden = True
End Sub
代码出现了一些意外错误,因为我是新手,所以不知道需要做什么。使代码正常工作的三个步骤: 第一。在必要的适当行中添加
设置关键字:
Set rocket = Range(Cells(5, i), Cells(5, j))
第二<代码>火箭变量
表示范围,您不需要这样调用它:
Range("Rocket")....
但是
三,。尽可能避免选择方法
和选择对象
。因此,最后两行将替换为这一行(也将执行第二步):
最后的回答太棒了!仅供他人参考,以下是Excel 2007中的工作原理。第一行始终为3,但结束行必须是变量。这就是我的问题所在。这个修好了!“如果结束”之前的最后4行完成工作。希望这有帮助
Dim RowsToHide As Range
Dim RowHideNum As Integer
' Set Correct Start Dates for Billing in New File
Workbooks("----- Combined_New_Students_Updated.xlsx").Activate
Sheets("2015").Activate
StartDateLine1 = Format(START_DATE_1, "ww") - 1 ' Convert Start Date to Week Number
StartDateLine1 = (StartDateLine1 * 6) - 2 ' Convert Start Date to Line Number
If StartDateLine1 >= "10" Then
Cells(4, "q").Value = ""
Cells(StartDateLine1, "q").Value = STATUS_1
Cells(StartDateLine1, "z").Value = "START DATE " + START_DATE_1
RowHideNum = StartDateLine1 - 2
Set RowsToHide = Range(Cells(3, "a"), Cells(RowHideNum, "ab"))
RowsToHide.Select
RowsToHide.EntireRow.Hidden = True
End If
rocket.EntireColumn.Hidden = true
Dim RowsToHide As Range
Dim RowHideNum As Integer
' Set Correct Start Dates for Billing in New File
Workbooks("----- Combined_New_Students_Updated.xlsx").Activate
Sheets("2015").Activate
StartDateLine1 = Format(START_DATE_1, "ww") - 1 ' Convert Start Date to Week Number
StartDateLine1 = (StartDateLine1 * 6) - 2 ' Convert Start Date to Line Number
If StartDateLine1 >= "10" Then
Cells(4, "q").Value = ""
Cells(StartDateLine1, "q").Value = STATUS_1
Cells(StartDateLine1, "z").Value = "START DATE " + START_DATE_1
RowHideNum = StartDateLine1 - 2
Set RowsToHide = Range(Cells(3, "a"), Cells(RowHideNum, "ab"))
RowsToHide.Select
RowsToHide.EntireRow.Hidden = True
End If