VBA - 在Excel项目之间传递变量

时间:2014-07-17 12:36:08

标签: excel vba excel-vba global-variables add-in

我的问题:如何设置在其他Excel项目中声明的变量的值?

背景: 我正在从一个不同的Excel项目中调用私有子(我不知道它是否重要,但我感兴趣的子是Excel加载项的一部分)。

在加载项中我有:

  • Public sapEEID As String
  • Private Sub UpdateLetterTemplate

我可以使用以下命令运行sub: Application.Run("' Solutions Add-In.xlam'!UpdateLetterTemplate")

但是,变量sapEEID =""

有没有办法通过" 17"在运行UpdateLetterTemplate private sub?

时作为sapEEID

1 个答案:

答案 0 :(得分:2)

您可能需要稍微修改子程序,但以下步骤可以正常工作

  • 添加引用:您需要添加对加载项的引用(VBE - >工具 - >引用)
  • ByRef参数:另外,请确保您的Sub可以采用ByRef参数。请参阅下面的示例代码。
  • 调用子程序:您已完成,现在在您的代码中,一旦设置了引用,请调用sub并传递您的变量。

子程序的示例代码:

Public Sub ChangeToTen(ByRef a as double)
    a = 10
End Sub

在主文件中调用代码:

Dim a as double
a = 1023.23

Call ChangeToTen(a)
MsgBox(a)          ' It will show 10