Tipp 0429
|
WordBasic-Sortier-Funktion
|
|
|
Autor/Einsender: Datum: |
|
Angie 04.01.2005 |
|
Entwicklungsumgebung: |
|
Word |
|
|
Mit der WordBasic-Sortier-Funktion SortArray können in Word/VBA
Elemente im angegebenen numerischen oder Zeichenfolgen-Datenfeld (ein- oder zweidimensional)
alphanumerisch sortiert werden. Falls das angegebene Datenfeld mehr als zwei Dimensionen aufweist,
tritt ein Fehler auf.
|
|
|
SortArray ArrayName[$]() [, Order] [, From] [, To] [, SortType] [, SortKey]
|
|
|
ArrayName[$]() |
Das zu sortierende ein- oder zweidimensionale Datenfeld. Datenfelder mit mehr als
zwei Dimensionen können nicht sortiert werden.
|
Order |
Die Sortierreihenfolge.
0 Aufsteigend (Default)
1 Absteigend
|
From |
Nummer des ersten zu sortierenden Elements (Default ist 0).
|
To |
Nummer des letzten zu sortierenden Elements (muss größer sein als From).
|
SortType |
Der Typ der durchzuführenden Sortierung (betrifft nur zweidimensionale Datenfelder).
0 Sortiert die "Zeilen" in der Datenfeldmatrix (Default)
1 Sortiert die "Spalten" in der Datenfeldmatrix
|
SortKey |
Die Nummer der "Zeile" oder "Spalte" nach der sortiert werden soll (betrifft nur
zweidimensionale Datenfelder).
0 (Default) kennzeichnet die erste "Zeile" oder "Spalte", 1 die zweite usw.
|
|
|
1. |
Optionale Argumente |
|
Obwohl bis auf ArrayName[$]() alle Argumente optional sind,
müssen alle Argumente zwischen angegebenen Argumenten ebenfalls angegeben werden.
|
| Gültige Anweisungen: |
|
WordBasic.SortArray Liste()
WordBasic.SortArray Liste(), 0, 0, 2, 0, 1
|
|
Ungültige Anweisungen: |
|
WordBasic.SortArray Liste(), 0, , , , 1
WordBasic.SortArray Liste(), Order:=0, From:=0, To:=9
|
2. |
Definition des Datenfelds |
|
Bei der Variablen-Definition des Datenfelds muss dieses auch als Datenfeld deklariert
werden, es kann kein Datenfeld sortiert werden, das in einer Variable vom Typ
Variant enthalten ist.
|
|
Mit WordBasic.SortArray können beispielsweise folgende
Datenfelder sortiert werden:
|
|
Dim avarArray() As Variant
Dim astrArray() As String
Dim astrArray(2) As String
Dim astrArray(2, 10) As String
|
|
Nicht sortiert werden können:
|
|
Dim astrArray(2, 10, 20) As String
Dim varArray As Variant
varArray = Array("Äpfel", "Birnen", "Bananen")
Dim varTest As Variant
ReDim varTest(0 To 10)
|
|
Auch wenn die Variable für das Datenfeld nicht definiert wird, wird dieses als
Variant betrachtet!
|
3. |
Anzahl sortierbarer Elemente im Datenfeld |
|
Es können maximal 32768 Elemente sortiert werden. |
4. |
Maximale Anzahl Zeichen pro Element im Datenfeld |
|
Sind im Datenfeld Elemente enthalten, die mehr als 255 Zeichen lang sind,
so werden beim Sortiervorgang die Zeichen ab dem 256. Zeichen abgeschnitten.
|
|
|
Alle Elemente im Datenfeld Liste() in aufsteigender Reihenfolge sortieren.
Die Sortierung beginnt mit den Elementen mit der Nummer 0. In einem zweidimensionalen
Datenfeld werden die "Zeilen" der Datenfeldmatrix sortiert, wobei die erste "Spalte"
als Sortierschlüssel verwendet wird:
|
|
|
WordBasic.SortArray Liste()
|
|
|
Die ersten 10 Elemente (0 bis 9) im Datenfeld Liste() in
aufsteigender Reihenfolge sortieren:
|
|
|
WordBasic.SortArray Liste(), 0, 0, 9
|
|
|
Die ersten 20 Elemente (0 bis 19) im zweidimensionalen Datenfeld
Liste() in absteigender Reihenfolge sortieren. Sortiert werden die
"Zeilen", wobei die zweite "Spalte" als Sortierschlüssel verwendet wird:
|
|
|
WordBasic.SortArray Liste(), 1, 0, 19, 0, 1
|
|
|
Die Elemente 0 bis 9 im zweidimensionalen Datenfeld Liste()
in aufsteigender Reihenfolge sortieren. Sortiert werden die "Spalten", wobei die vierte
"Zeile" als Sortierschlüssel verwendet wird:
|
|
|
WordBasic.SortArray Liste(), 0, 0, 9, 1, 3
|
|
|
|
|