Ich bin ein Word-Dokument mit Inhaltskontrollen, die als ein Formular verwendet werden. Die Dropdown-Listen stammen aus einer Arbeitsmappe und werden abhängig von den getroffenen Entscheidungen dynamisch angepasst.VBA Word - Wie array oder dict oder coll zu speichern, während das Dokument geöffnet ist
Anstatt jedesmal auf die Arbeitsmappe zuzugreifen (und die Vorgänge zu verlangsamen), versuche ich, die notwendigen Informationen in Arrays und Wörterbüchern zu speichern, die während des Ausfüllens des Formulars bei Document_Open() verwendet werden. Ich brauche (und will nicht) die Arrays/dict gespeichert, nachdem der Benutzer das Dokument schließt.
Ich habe versucht, ein öffentliches Diktat außerhalb der Funktion zu deklarieren, kein Erfolg (oder mache ich es falsch?). Kann mir jemand in die richtige Richtung zeigen?
danke
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
später gestartet werden
Sub test()
Debug.Print dict("random key")
End Sub