2013-08-07 107 views
0

我需要在Excel中使用宏隱藏一系列單元格。 C11包含我需要開始隱藏列的列索引。使用基於單元值的VBA在Excel中隱藏列的範圍

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 

的代碼是給一些意外的錯誤,因爲我是一個新手,所以不知道需要做什麼..

回答

1

樹的步驟讓你的代碼工作:

1日。添加Set關鍵字在必要的適當的行:

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

第2。 Rocket variable代表範圍,你將不再需要調用它是這樣的:

Range("Rocket").... 

rocket.... 

第三名。儘可能避免Select methodSelection object。因此,最後兩行替換爲這一行(也實現第二步):

rocket.EntireColumn.Hidden = true 
0

最後回答真棒!僅僅爲了其他人的參考,這裏是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 
相關問題