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

Oda*_*lim 3 excel vba excel-vba

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

我的代码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
Run Code Online (Sandbox Code Playgroud)

当我转到任何模块并使用该msgbox函数调用项目时,它不起作用:

MsgBox (Dic("col"))
Run Code Online (Sandbox Code Playgroud)

任何提示请如何使这项工作?

我们的想法是在电子表格的开头设置这个字典,并且在任何后续模块中都需要访问它.

干杯

小智 5

我可以看到你在私人ThisWorkbook代码表中制作了Dic脚本字典的'公开'声明.这使它可用于私人ThisWorkbook代码表中的任何子过程.

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

在此输入图像描述