我正在构建一个包含将用作表单的内容控件的word文档。下拉列表将来自工作簿,并将根据所做的选择进行动态调整。
我不是每次都重新访问工作簿(并减慢速度),而是尝试将必要的信息存储在数组和字典中,以便在Document_Open()中填充表单时使用。在用户关闭文档后,我不需要(并且不想要)存储的数组/字典。
我试过在函数之外声明一个公共字典,没有成功(或者我做错了?)。有人能指出我正确的方向。
谢谢
Public dict As Object
Public Sub Document_Open()
Set dict = CreateObject("Scripting.Dictionary")
Dim xlApp As Object
Dim xlWB As Object
Dim xlWS As Object
Dim cRows As Integer
Dim i As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Open("O:\[..]\Library.xlsx")
Set xlWS = xlWB.Worksheets(1)
cRows = 21
For i = 1 To cRows
dict.Add xlWS.Range("C2").Cells(i, 1).Value, xlWS.Range("C2").Cells(i, 2).Value
Next i
Set xlWS = Nothing
Set xlWB = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
稍后发布
Sub test()
Debug.Print dict("random key")
End Sub
答案 0 :(得分:1)
只需将您的公共变量移动到标准模块(例如,您test
所在的模块),一切都会正常工作。