2010-04-16 171 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

相关问题