【问题标题】:VBA - pass variable between Excel projectsVBA - 在 Excel 项目之间传递变量
【发布时间】:2014-07-17 20:51:20
【问题描述】:
我的问题:如何设置在其他 Excel 项目中声明的变量的值?
背景:
我正在从不同的 Excel 项目中调用私有子(我不知道这是否重要,但我感兴趣的子是 Excel 插件的一部分)。
在我的插件中:
- 公共 sapEEID 作为字符串
- 私有子 UpdateLetterTemplate
我可以使用以下命令运行子程序:
Application.Run("'Solutions Add-In.xlam'!UpdateLetterTemplate")
但是,变量 sapEEID = ""
在运行 UpdateLetterTemplate 私有子程序时,有没有办法将“17”作为 sapEEID 传递?
【问题讨论】:
标签:
vba
excel
global-variables
add-in
【解决方案1】:
您可能需要稍微修改您的子例程,但以下步骤将起作用
-
添加引用:您需要添加对加载项的引用(VBE -> 工具 -> 引用)
-
ByRef 参数: 另外,请确保您的 Sub 可以采用
ByRef 参数。请参阅下面的示例代码。
-
调用子程序:你已经完成了,现在在你的代码中,一旦设置了引用,调用子程序并传递你的变量。
子程序示例代码:
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