Public sp As Worksheet // on top of ThisWorkbook module
...
Sub one()
Set sp = Sheets("blueSky") // marked
MsgBox sp.Name
...
Sub two()
Set sp = Sheets("blueSky") // marked
MsgBox sp.Range("A1").Value
标记线总是一样的。
那么,是否可以只标记一次标记线 - 以及在哪里?
我试过Workbook.Open事件 - 没有结果
我想在每个Sub中只写第三行 - 这总是不同的。
答案 0 :(得分:4)
如果您将以下内容放入模块(而非ThisWorkbook
),则会获得全局Worksheet
变量:
Option Explicit
Global sp As Worksheet
然后您可以通过ThisWorkbook
中的任何一种方式对其进行处理(子one()
和two()
也可以在模块中使用):
Option Explicit
Public Sub one()
Set sp = Sheets("Sheet1") '// marked
MsgBox sp.Name
End Sub
Sub two()
Set sp = Sheets("Sheet2") ' // marked
MsgBox sp.Range("A1").Value
End Sub
Private Sub Workbook_Open()
Set sp = Sheets("Sheet3")
End Sub