我需要在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
End Sub
代码出现了一些意想不到的错误,因为我是新手,所以不知道需要做什么..
答案 0 :(得分:1)
使代码正常工作的树步骤:
第一。在必要的相应行中添加Set
关键字:
Set rocket = Range(Cells(5, i), Cells(5, j))
第二。 Rocket variable
表示范围,您不需要以这种方式调用它:
Range("Rocket")....
但
rocket....
第三。尽可能避免使用Select method
和Selection object
。因此,最后两行替换为这一行(也实现了第二步):
rocket.EntireColumn.Hidden = true
答案 1 :(得分:0)
最后的答案太棒了!仅供其他人使用,这是Excel 2007中的工作原理。第一行始终为3,但结束行必须是变量。那就是我遇到问题的地方。这个固定了! " End If"之前的最后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