Hier
k = Len(txta)
ReDim abc(1 To k) As String
For i = 1 To k
abc(i) = Mid(txta, i, 1)
Next i
wird die Eingabe in einzelne Zeichen zerlegt und in ein Array (Datenfeld) zwischengespeichert.
Der Teil
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | For i = 1 To k
For j = 1 To k - 1
If abc(j + 1) < abc(j) Then
h = abc(j)
abc(j) = abc(j + 1)
abc(j + 1) = h
End If
Next j
Next i
|
ist als BubbleSort bekannt, also ein Sortieralgorithmus (den ihr, wenn der hier dran kommt, sicher mal im Unterricht/Vorlesung hattet).
Hier
1 2 3 4 5 6 7 8 9 10 11 12 13 | s = ""
For i = 1 To k
s = s + abc(i)
Next i
txtb = s
|
wird anschließend der Inhalt des nun sortierte Arrays, zeichnweise aneinander hängend, in die Variable 's' geschrieben und dann in txtb ausgegeben.
-> Zum Beispiel wird aus der Eingabe 967 demnach 679.
Wie der Algo. die Zeichen im BubbleSort sortiert, wird durch
in der ersten Zeile festgelegt (diese werden also bei deutscher GebietsID nach deutschen Regeln sortiert, Groß-/Kleinschreibung wird nicht beachtet).
Ziemlich am Anfang siehst du ein
On Error GoTo sp
und am Ende ein
Das bewirkt das wann immer irgendwo in dem Makro nach de On Error Goto - Anweisung ein Fehler auftritt, springt das Makro zu dem Punkt 'sp'. Dies ist z.b. der Fall, wenn die Eingabe leer bleibt. Dann wird nämlich versucht bei
1 2 3 | k = Len(txta)
ReDim abc(1 To k) As String
|
ein Array mit der Dimension 1 nach 0 erzeugen und das ist nicht gültig (bei Punkt e würde also 'abc' in txtb stehen).
Hoffe das hat dir geholfen.
Gruß
|