VBA Excel Bevölkern ListBox mit mehreren Spalten
Dies kann eine billige Frage für einige, aber ich bin Total verwirrt, wie man das Auffüllen meiner listbox.
Mit dieser Zeile kann ich das Listenfeld füllen, wie unten dargestellt:
ListBox1.List = Sheets("Sheet1").Cells(1, 1).CurrentRegion.Value
oder
Dim rngName As Range
Dim ws As Worksheet
Dim i As Integer
Set ws = Worksheets("Sheet1")
For i = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Step 1
If ws.Cells(i, 1).Value <> vbNullString Then Me.ListBox1.AddItem
ws.Cells(i, 1).Value
Next i
Unten ist die Daten, die ich Plane, verwenden Sie zum Auffüllen der Liste aus, und ist progressiv. Nur die Spalte hat den fix zählen.
Jemand bitte klärt mich auf, wie um ein Listenfeld zu füllen adapative über mehrere Spalten und Zeilen mit FOR-SCHLEIFE, wie gezeigt, in meinem code oben. Jede Hilfe zu schätzen. Danke.
Haben Sie gesehen, THIS
Und für den nicht zusammenhängenden Bereich finden Sie unter THIS
Diese Zeile enthält die Deklaration bestimmten Bereich. Ist es möglich, die Auswahl aller Zellen, die nicht leere Zelle?
Warum haben Sie wollen - Schleife? Es ist viel schneller nicht zu.
Können Sie nicht verwenden dynamische benannte Bereiche?
Und für den nicht zusammenhängenden Bereich finden Sie unter THIS
Diese Zeile enthält die Deklaration bestimmten Bereich. Ist es möglich, die Auswahl aller Zellen, die nicht leere Zelle?
Warum haben Sie wollen - Schleife? Es ist viel schneller nicht zu.
Können Sie nicht verwenden dynamische benannte Bereiche?
InformationsquelleAutor Serversta | 2017-11-28
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Methoden
ListBox1.List
mit dem array (gleiche Methode, aber in umgekehrter Richtung).Code
Zusätzliche Hinweise
Ein weiterer Vorteil der array-Methode - es überwindet das eingebaute Beschränkung, nur 10 Spalten bei der Verwendung der
.AddItem
Methode.Darüber hinaus beachten Sie, dass die listbox die Indizierung ist null-basiert, so zum Beispiel erhalten Sie die e-mail-Adresse (Spalte 3, index 2) des ersten Elements der Zeile (index 0) über
ListBox1.List(0, 2)
, in der Erwägung, dass die Datenfeld-array wird automatisch ein anhand der 2-dim-array.Sind Sie nicht beschränkt auf die Nutzung der
.List
Methode, um Informationen aus der listbox, können Sie rückgängig machen, die Zeile - Spalte, um durch die VerwendungListBox1.Column" or even create a new array out of it, which remains a 2-dim object, even if there is only ONE item (note: the
Anwendung.Transpose " - Methode würde redim ein 2-dimensionales array mit nur einer Zeile zu einem 1-dim array).Einen letzten Punkt: Sie können leicht dump wieder die ganze listbox auf einem Excel-sheet über
rng = ListBox1.List
, aber achten Sie darauf, um zu definieren, den richtigen Bereich.Froh, dass ich helfen konnte, finden Sie einige zusätzliche Hinweise, die Sie in meinem edit.
InformationsquelleAutor T.M.
Wie wäre es damit:
Kein problem, gern behilflich sein...
InformationsquelleAutor Xabier