Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
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-Sortier-Prozedur

Array-Sortier-Prozedur
14.08.2014 08:43:55
Hendrik
Hallo zusammen, mit unten angefügten Code sortiere ich Arrays.
Ursprünglich sollte er ein zweidimensionales Array verwenden können und dann habe ich intBreite aufgenommen, um darüber steuern zu können wie "breit" das Array ist. Ich wollte nicht unterschiedliche Prozeduren für 1- und 2-Dimensionale.
Der Code unten bricht ab, wenn ich ihn mit einem nur eindimensionalen (und intBreite=1) aufrufe, da er dann bei
strA = strArray(a, 1)

überläuft.
Ich sehe gerade partout nicht den springenden Punkt, der mich den Code zum laufen bringt. Könnt Ihr helfen? Danke!
Sub sortiereArray(strArray() As String, intBreite As Integer)
'Zum sortieren eines Arrays (alphabetisch nach Inhalt der ersten Spalte)
'Erwartet bei 1 beginnende Arrays
Dim a As Long
Dim b As Long
Dim strTmp As String
Dim strA As String
Dim strB As String
Dim i As Long
For a = 1 To UBound(strArray)
For b = a + 1 To UBound(strArray)
strA = strArray(a, 1)
strB = strArray(b, 1)
If strA > strB Then
For i = 1 To intBreite
strTmp = strArray(a, i)
strArray(a, i) = strArray(b, i)
strArray(b, i) = strTmp
Next i
End If
Next b
Next a
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array-Sortier-Prozedur
14.08.2014 09:13:42
Daniel
Hi
du kannst ein eindimensionales Array nicht genauo behandeln wie ein zweidimenisionales.
dh um unterschiedliche Codes fürs Sortieren wirst du wahrscheinlich nicht herumkommen.
Wenn du nur eine Prozedur haben willst, dann kannst du ja beide Codes in eine Sub packen und am Anfang prüfen, ob ein ein- oder zweidimensionales Array vorliegt.
eine Funktion zum ermitteln der Anzahl der Dimensionen eines unbekannten Arrays kenne ich jetzt nicht (was natürlich nicht heissen muss, dass es diese Funktion nicht gibt), aber du könntest dir mit diesem Workaround behelfen, um die Anzahl zu ermitteln und entsprechend zu sortieren:
Sub SortArray(x)
Dim i As Long
If VarType(x) 
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige