【问题标题】:Create global variables创建全局变量
【发布时间】:2016-10-25 15:34:24
【问题描述】:

VBA 新手,抱歉

我需要创建一些在我的工作簿中可用的变量,但我似乎无法弄清楚。我在之前的问题中读过一些人建议为此创建一个单独的暗淡?

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

到目前为止我已经尝试过使用

Workbook_Open()

在“ThisWorkbook”代码区但无济于事。

有什么建议吗?

问候

编辑----

我尝试了以下方法:

在“本工作簿”中

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

在 Sheet1 中

Private Sub CommandButton1_Click()
    MsgBox wsDrawings
End Sub

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

【问题讨论】:

  • 你打算在 VBA 里面有几个模块吗?还是只对所有工作表使用这些变量?

标签: vba excel


【解决方案1】:

你可以用这样的代码创建全局变量

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

【讨论】:

  • 我无法让它为我工作,我已经复制了我上面使用的代码,有什么想法吗?
  • @ChrisBull 现在看看我的答案,我想我得到了一些东西
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2017-11-12
      • 2014-11-29
      • 1970-01-01
      • 2015-03-24
      • 2014-03-21
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多