Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array sortieren

Array sortieren
25.04.2014 12:32:51
Gregor
Hallo zusammen
Ich habe im Frum folgenden Code zum sortieren eines Array gefunden:
Option Explicit
Option Base 0
'Deklaration eines Variant der das zusortierende Array aufnimmt.
'Das Array beinhaltet hier 16 Element (0 bis 15), wobei das erste
'als Hilfselement eingesetzt wird.
Dim SortArr As Variant
'Diese Prozedur initialisiert das Array mit den unsortierten Werten.
'Das Hilfselement SortArr(0) wird mit 0 initialisiert.
Sub Init_Arr(ByRef SortArr)
SortArr = Array(0, 10, 3, 14, 5, 2, 13, 11, 9, 12, 1, 7, 15, 8, 4, 6)
End Sub
'Die Sortier-Prozedur Insert_Sort setzt den Sortieralgortihmus um.
Sub Insert_Sort(ByRef SortArr)
Dim i As Integer, j As Integer, Element As Integer
'Durchlaufen der Array-Elemente mittels Schleife.
For i = 2 To 15
Element = SortArr(i)
'Hilfselement wird als Zwischenspeicher eingesetzt.
SortArr(0) = Element
j = i - 1
'Verschieben der Array-Elemente bis
'kleineres Array-Element gefunden.
Do While Element 
'Über diese Prozedur kann das Array zur Überprüfung ausgegeben werden.
Sub ArrAusgabe(Text As String, ByRef SortArr)
Dim i As Integer
Dim SortArrStr As String
SortArrStr = Text & SortArr(1)
For i = 2 To 15
SortArrStr = SortArrStr & ", " & SortArr(i)
Next i
MsgBox SortArrStr
End Sub
'Die Hauptprozedur führt die vorab aufgeführten Prozeduren aus.
Sub Insert_Sort_Test()
Call Init_Arr(SortArr)
Call ArrAusgabe("Unsortiert: ", SortArr)
Call Insert_Sort(SortArr)
Call ArrAusgabe("Sortiert: ", SortArr)
End Sub
Geht das auch mit Text und Zahlen? Ich möchte mit einer For Next Schlaufe ca. 10 Zellen einlesen und diese dann immer nach der gleichen Reihenfolge sortieren.
Beispiel
Array = PL, 2015, M, ohne, PF, 2016, 2014,
Sortierte Array = PF, PL, M, 2014, 2015, 2016
Danke und Gruss
Gregor

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array sortieren
25.04.2014 13:18:27
Erich
Hi Gregor,
im folgenden Code habe ich die mit ##### markierten Stellen geändert.
Texte werden hinter die Zahlen sortiert.

Sub Init_Arr(ByRef SortArr)
'    SortArr = Array(0, 10, 3, 14, 5, 2, 13, 11, 9, 12, 1, 7, 15, 8, 4, 6)
SortArr = Array("PL", 2015, "M", "ohne", "PF", 2016, 2014) ' #####
End Sub
'Die Sortier-Prozedur Insert_Sort setzt den Sortieralgortihmus um.
Sub Insert_Sort(ByRef SortArr)
Dim i As Integer, j As Integer, Element 'As Integer       ' #####
'Durchlaufen der Array-Elemente mittels Schleife.
For i = 2 To UBound(SortArr)                              ' #####
Element = SortArr(i)
'Hilfselement wird als Zwischenspeicher eingesetzt.
SortArr(0) = Element
j = i - 1
'Verschieben der Array-Elemente bis
'kleineres Array-Element gefunden.
Do While Element 
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Array sortieren
25.04.2014 16:33:45
Gregor
Erich, vielen Dank
Gruss Gregor

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige