Benutzung auf eigene Gefahr ! |
Beschreibung |
Sortiert ein einspaltiges ungebundenes Listenfeld oder Kombinationsfeld in aufsteigende Reihenfolge. |
VBA-Quelltext |
Public Sub ListeSortieren(Liste As Object) Dim ZeileA As Integer, ZeileB As Integer Dim SortierteListe As String, TEMP Dim ListenEinträge() ReDim ListenEinträge(0 To Liste.ListCount - 1) ' In Datenfeld einlesen und sortieren For ZeileA = 0 To Liste.ListCount - 1 ListenEinträge(ZeileA) = Liste.Column(0, ZeileA) For ZeileB = ZeileA To 1 Step -1 If ListenEinträge(ZeileB) < ListenEinträge(ZeileB - 1) Then TEMP = ListenEinträge(ZeileB) ListenEinträge(ZeileB) = ListenEinträge(ZeileB - 1) ListenEinträge(ZeileB - 1) = TEMP End If Next ZeileB Next ZeileA ' An Liste zurückgeben SortierteListe = vbNullString For ZeileA = 0 To Liste.ListCount - 1 If InStr(1, ListenEinträge(ZeileA), ";") = 0 Then SortierteListe = SortierteListe & ";" & ListenEinträge(ZeileA) Else SortierteListe = SortierteListe & ";""" & ListenEinträge(ZeileA) & """" End If Next ZeileA Liste.RowSource = Mid(SortierteListe, 2) End Sub |
Argumente der Funktion/Prozedur |
|
Verwendete Variable |
|
Anwendungsbeispiel(e)... |
Wird eine Schaltfläche mit der Prozedur 'Start_Click()' verknüpft, dann sortiert das folgende Programm zunächst das Listenfeld 'Liste' und dann das Kombinationsfeld 'KombiFeld', jeweils in aufsteigende Reihenfolge. Private Sub Start_Click() |
Hinweis |
Der Algorithmus entspricht Bubble-Sort, da aber ein ungebundenes Listenfeld sortiert wird, ist die Anzahl aller Zeichen auf 2048 begrenzt und die Laufzeitnachteile von Bubble-Sort fallen nicht ins Gewicht. |
Anwendungsgebiete, Fehler und Warnungen |
Nur Listbox- und ComboBox-Objekte mit folgenden Eigenschaften können sortiert werden:
|