2016-06-01 9 views
0

Ich bekomme den 424 Fehler im Code unten und ich kann nicht herausfinden, was los ist. Im Grunde versuche ich, eine Combobox mit Daten aus einer Spalte in einer Tabelle in einer anderen Arbeitsmappe zu füllen. Ich dachte daran, dies mit Bereichen zu tun und zu automatisieren, so viel wie ich konnte, d. H. Ich wollte sogar das Combobox-Objekt als Variable übergeben ... Aber ich stecke hier fest ...VBA-Fehler 424 Objekt im Bereich Objekt

Vielen Dank für Ihre Hilfe!

Sub PopListBoxTbl(tbl As String) 
Dim popv As Range, col As Range 
Dim cmb As ComboBox 
Dim wb As Workbook 
Dim sheet As Worksheet 
Set cmb = UserForm1.ComboBox2 
Set wb = Workbooks.Open(path, False, True) 
Set sheet = wb.Worksheets(tbl) 
Set col = sheet.Range(tbl) 
wb.Close 
cmb.Clear 
For Each popv In col.Cells 'here's the error line 
With cmb 
    .AddItem popv.Value 
End With 
Next popv 
End Sub 
+0

Der Fehler sollte in der Zeile 'Set wb = Workbooks.Open (Pfad, False, True) 'auftreten, da kein' Pfad' festgelegt ist, um eine Datei zu öffnen. Der Fehler, den Sie in dieser Zeile erhalten, ist wahrscheinlich darauf zurückzuführen, dass Sie die Datei vor dem Lesen/Erfassen von Daten aus dieser Datei geschlossen haben. Sie könnten in Betracht ziehen, diese Zeile bis zum Ende der Untergruppe zu verschieben. – Ralph

Antwort

0

Sobald Sie die Quellarbeitsmappe schließen, ist Ihre col Variable nichts. Das verursacht Ihren Fehler - Sie können kein Objekt Range auf einen Bereich in einer geschlossenen Arbeitsmappe verweisen. Schließen Sie es einfach, nachdem Sie das Steuerelement gefüllt haben, oder laden Sie die Daten zuerst in ein Array.

+0

Danke Jungs! es funktionierte. Hätte keine Ahnung, dass ich kein Range-Objekt hätte, das auf einen Bereich in einer geschlossenen Arbeitsmappe verweist. – Alinas

Verwandte Themen