0
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 中只写第三行——这总是不同的。

4

1 回答 1

4

如果您将以下内容放入模块(不是ThisWorkbook)中,您将获得一个全局Worksheet变量:

Option Explicit

Global sp As Worksheet

然后,您可以在ThisWorkbook(subsone()并且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
于 2012-09-08T07:26:43.117 回答