0

我需要在 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

代码给出了一些意想不到的错误,因为我是新手,所以不知道需要做什么..

4

2 回答 2

1

使您的代码工作的树步骤:

第一个。在适当的行中添加Set必要的关键字:

Set rocket = Range(Cells(5, i), Cells(5, j))

第二。Rocket variable表示范围,您不需要以这种方式调用它:

Range("Rocket").... 

rocket....

第三。尽可能避免Select methodSelection object始终避免。因此最后两行替换为这一行(也实现了第二步):

rocket.EntireColumn.Hidden = true
于 2013-08-07T05:41:23.657 回答
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
于 2015-06-21T16:30:51.763 回答