Bis jetzt fand ich eine Möglichkeit, meine Combobox aufzufüllen, aber es funktioniert nicht (Error 429), wenn es versucht, das Objekt zu erstellen. hier ist der Code, den ich gefunden:Füllen Sie Combobox mit eindeutigen Werten ohne scripting.dyndnary
Dim v, e
c = 2
ld = 8
lf = 128
With Sheets("2017-Sem1").Range(Cells(ld, c), Cells(lf, c))
v = .Value
End With
With CreateObject("scripting.dictionnary")
.comparemode = 1
For Each e In v
If Not .exists(e) Then .Add e, Nothing
Next
If .Count Then Me.ComboBox1.List = Application.Transpose(.keys)
End With
End Sub
Zunächst einmal ich nicht genau under, was der Code tut, werde ich Ihnen dankbar, wenn Sie mich erleuchten könnte. Zweitens scheint es, dass „scripting.dictionnary“ auf meinem Computer nicht existiert: ich
versuchtedim dict as scripting.Dictionnary
und es gibt einen Übersetzungsfehler auf einmal.
Also, nach meinem Verständnis so weit, ich werde nicht in der Lage sein, es zu verwenden (keine DLL, und ich kann nicht in die Ordner bei meiner Arbeit gehen). Hat jemand eine alternative Lösung, die ich verwenden kann?
Danke, Peagle
Sie müssen den Verweis auf das Wörterbuch hinzufügen. Es heißt "Microsoft Scripting Library". Sie finden die Referenzen im VBA-Editor 'Tools> References' – CallumDA
Die Referenz ist nicht in ... nach dem, was ich hier gefunden habe: http://www.ozgrid.com/forum/showthread.php?t=66682 Ich müsste etwas herunterladen und installieren, was an meinem Arbeitsplatz verboten ist ... Alles, was ich nicht sehe? – PEagle
Sie haben 2 Methoden in Ihrem Beitrag, in Ihrem Code verwenden Sie ** Late Binding ** mit 'Mit CreateObject (" scripting.dyndynary ")'. Später in Ihrem Post fragen Sie jedoch nach ** Early Binding ** von 'dim dict as scripting.Dictionnary', welche Methode möchten Sie verwenden? Und es sollte 'Mit CreateObject (" scripting.dictionary ")' - Sie haben eine ** n ** zu viele –