VBA Excel宏:使用范围对其他工作表进行操作

VBA Excel宏:使用范围对其他工作表进行操作,vba,excel,Vba,Excel,说到VBA编程,我是个初学者 我有一个宏,它根据一个单元格中的值隐藏或显示列: 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 Wit

说到VBA编程,我是个初学者

我有一个宏,它根据一个单元格中的值隐藏或显示列:

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
子HideColumnsMacro()
范围(“b8:o8”).entireclumn.Hidden=False
v1=范围(“b2”)。值+1
如果v1<12,则
带量程(“b8”)
范围(.Offset(0,v1),.Offset(0,12)).EntireClumn.Hidden=True
以
如果结束
端接头

当我在不同的工作表上更改单元格时,我希望能够获得相同的功能。当从另一张工作表运行宏时,有没有办法让宏在此工作表上执行操作?

在宏中,指定确切的工作表:

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

用工作表的名称限定您的
范围
s:

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

+我必须选择接受哪一个正确答案。实际上,从这个答案中不清楚Sheet1是一个已经被引用的工作表类型变量。假设OP表示他是VBA新手。@Anonymous它不是一个变量,而是一个工作表名。每个工作表在VBA中都有一个名称,该名称在代码中表示该工作表,无需执行任何其他操作。Thomas使用不同的“用户名”,即您在Excel界面中更改的用户名,而不是在IDE中更改的“VBA名称”。我同意他的回答对一个新手来说可能更清楚。是的,你是绝对正确的,我真是太蠢了。。。很抱歉只是试着从OP的视角来看。