VBA公共词典-如何访问数据

时间:2018-10-19 10:42:44

标签: excel vba excel-vba

我正在VBA的Workbook_Open()上设置公共词典。我想在电子表格中创建的任何模块中访问此词典中的项目。

我在ThisWorkbook中的代码是:

Option Explicit
Public Dic As Scripting.Dictionary

Private Sub Workbook_Open()
    Set Dic = New Scripting.Dictionary
    Dic.Add Key:="cat", item:="Database"
    Dic.Add Key:="pwd", item:="Password"
    Dic.Add Key:="col", item:="Server"  
End Sub

当我进入任何模块并使用msgbox函数调用一个项目时,它将无法工作:

MsgBox (Dic("col"))

任何提示如何使这项工作有效?

这个想法是在电子表格的开头设置该词典,并在随后的任何模块中进行访问。

欢呼

1 个答案:

答案 0 :(得分:5)

我可以看到您已经在私人的ThisWorkbook代码表中对 Dic 脚本字典进行了“公开”声明。这使其可用于私有ThisWorkbook代码表中的任何子过程。

要使其可用于任何代码表中的任何子过程,请将其放在任何一个公共模块代码表的声明区域(即顶部)中。这样,您仍可以从私有Workbook_Open填充字典对象,并将填充的值保留在项目中的任何地方使用。

enter image description here