2010-04-16 173 views
0

當談到VBA編程時,我非常瞭解初學者。VBA Excel宏:使用Range來處理不同的工作表

我有隱藏或顯示在一個小區是基於價值列宏:

Sub HideColumnsMacro() 
Range("b8:o8").EntireColumn.Hidden = False 
v1 = Range("b2").Value + 1 
If v1 < 12 Then 
    With Range("b8") 
    Range(.Offset(0,v1), .Offset(0, 12)).EntireColumn.Hidden = True 
    End With 
End If 
End Sub 

我希望能夠當我改變在不同的表單元格中獲得此相同的功能。有沒有一種方法可以讓這個宏在這張表上運行,當它從另一個表單運行時?

回答

5

在宏,指定精確的表:

Sheets("Sheet1").Range("b8:o8").EntireColumn.Hidden = False 
2

與工作表的名稱限定您Range S:

Sheet1.Range("b8:o8").EntireColumn.Hidden = False 
+0

+1任意不得不選擇這些正確答案的接受。 – 2010-04-17 00:38:50

+0

實際上,從這個答案中可以看出Sheet1是一個已經被引用的工作表類型變量。鑑於OP表明他是VBA新手。 – 2011-01-19 04:08:06

+0

@Anonymous它不是一個變量,它是一個表名。每個工作表在VBA中都有一個名稱,該名稱代表代碼表中的工作表,而沒有任何其他操作。 Thomas使用不同的「用戶名」,這是您從Excel界面更改的那個,而不是您在IDE中更改的「VBA名稱」。我同意他的回答對於新手來說可能更清楚。 – GSerg 2011-01-20 12:26:00

相關問題