创建全局变量

时间:2016-06-23 10:39:18

标签: vba excel-vba excel

VBA的新手,抱歉

我需要创建一些可用于整个工作簿的变量,但我似乎无法弄明白。我以前的问题中已经读过一些人建议为此创建一个单独的暗淡?

当工作簿打开时,我需要设置一些等于工作表中某些单元格的变量,这些变量需要从其他工作表中的dims调用。

到目前为止,我已尝试使用

Workbook_Open()

在本工作手册中'代码区但无济于事。

任何提示?

Reagards

编辑----

我尝试了以下内容:

在ThisWorkbook'

Public wsDrawings As String
Public Sub Workbook_Open()
     wsDrawings = "Hello"
End Sub

在Sheet1中

Private Sub CommandButton1_Click()
    MsgBox wsDrawings
End Sub

我没有收到错误,但消息框为空。

3 个答案:

答案 0 :(得分:0)

您可以使用此代码

创建全局变量

Public testVar As String

您需要将其放在functionsub之外,然后此变量具有值,直到您关闭工作簿。但我认为它只有当前模块的范围。

所以你可以拥有这样的东西

Public testVar As String

Private Sub Workbook_Open()

testVar = "test"
End Sub

Sub testEcho()

MsgBox testVar
End Sub
多个模块之间的共享变量

看起来here

编辑:

所以现在我发现,你可以使用这个

来使用ThisWorkbook中的公共变量
Sub testSub()

    MsgBox ThisWorkbook.wsDrawings
End Sub

答案 1 :(得分:0)

只需声明首次使用它们所需的变量(ThisWorkbook是一个很好的地方)并用Dim替换典型的Public。然后,您可以在所有代码中访问它

答案 2 :(得分:-1)

您可以使用模块创建全局变量。