VBA Excel macro: use Range to act on a different w

2020-02-02 03:33发布

I am very much a beginner when it comes to VBA programming.

I have a Macro that hides or shows columns based on the value in one cell:

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

I want to be able to get this same functionality when I change a cell on a different sheet. Is there a way I can tell this Macro to act on this sheet, when it is run from a different one?

2条回答
手持菜刀,她持情操
2楼-- · 2020-02-02 03:56

Qualify your Ranges with the name of the worksheet:

Sheet1.Range("b8:o8").EntireColumn.Hidden = False
查看更多
不美不萌又怎样
3楼-- · 2020-02-02 04:14

In your macro, specify the exact sheet:

Sheets("Sheet1").Range("b8:o8").EntireColumn.Hidden = False
查看更多
登录 后发表回答