VBA Excel添加 - 在加载时初始化全局变量 - 而不是在工作簿中

时间:2015-10-14 11:12:29

标签: excel vba excel-vba

我正在创建一个excel加载项,它连接到在API上设置的函数和公式。 要使用API​​函数,用户需要登录并接收令牌。

Token是一个全局变量,只要调用API函数就会引用它。

这个插件将被许多不同的工作簿使用,所以我试图让用户尽可能容易地连接。

目前我有一个连接并将详细信息存储在全局变量中的函数,因此它们只需登录一次。但是每当他们关闭并重新打开时,他们必须通过调用函数并传入细节来重新登录。

有没有办法从加载项访问初始化工作簿?

有效等效?

或者在启动时运行加载项功能?,用户无需设置宏或自定义功能,他们只需添加并自动连接其详细信息。

'Is their an equivalent of
Sub New() /  Sub OnLoad()
   Initalize()
End sub

我不希望用户完全担心会发生什么,他们只需要在定义的单元格中加载用户名和密码的页面,或者引用用户名和密码的功能,即使是页面设置为手动计算,它将在加载时重新计算。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

不是将令牌存储为全局令牌,而是将其存储为已定义的名称,该名称是持久的。

ThisWorkbook.Names.Add "Token", sToken

然后只需在每次需要令牌时评估名称。

 sToken = ThisWorkbook.Sheets(1).[Token]

答案 1 :(得分:2)

如果有人好奇的话。我发现你可以使用类似于OnLoad()的方式初始化全局变量。

Private WebAddress As String

Sub Auto_Open()
    WebAddress = "www.stackoverflow.com"
End Sub

可以在模块中,并在工作簿打开时调用。