Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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
07.05.2022 12:39:49
Henry
Hallo,
ich habe folgenden Code, um in einem Array drei Zahlen abzuspeichern.

Private Sub Test_Click()
Dim arr(1 To 3) As String
Dim i As Integer
For i = 1 To 3
arr(i) = InputBox("Eingabe Nr. " & i)
Next
MsgBox Join(arr, vbCrLf)
End Sub
Dies funktioniert auch einwandfrei.
In der MsgBox würde ich die Zahlen jedoch sortiert nach ihrer Größe ausgeben.
Beispiel: Der User gibt in der Inputbox eine 3, dann eine 1, und dann eine 5 ein.
Dann soll in der MsgBox 1, 3, 5 stehen.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array sortieren
07.05.2022 14:42:29
RPP63
Möchtest Du nicht erst mal gegebene Antworten in Deiner Beitragsorgie beantworten?
Kinderstube?
AW: Array sortieren
07.05.2022 14:45:41
Henry
Ja das mache ich nun.
AW: Array sortieren
07.05.2022 15:11:45
Nepumuk
Hallo Henry,
würde ich so machen:

Private Sub Test_Click()
Dim objSortedList As Object, objArrayList As Object
Dim lngIndex As Long
Set objSortedList = CreateObject("System.Collections.SortedList")
Set objArrayList = CreateObject("System.Collections.ArrayList")
For lngIndex = 1 To 3
Call objSortedList.Add(Key:=InputBox("Eingabe Nr. " & CStr(lngIndex)), Value:=vbNullString)
Next
Call objArrayList.AddRange(c:=objSortedList.GetKeyList())
MsgBox Join(objArrayList.ToArray, vbCrLf)
Set objSortedList = Nothing
Set objArrayList = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: Array sortieren
07.05.2022 16:20:05
Daniel
Hi
Standard-VBA hat keine Funktion zum Sortieren von Arrays.
Man muss sich das selber programmieren (oder im Internet nach entsprechenden Codes suchen).
Die alternative wäre, dass Array in eine Tabelle zu schreiben, dort mit der Excel-Menüfunktion zu sortieren, vor allem bei zweidimensionalen Arrays und mehreren Dortierspalten ist das dir einfachste Variante in der VBA-Programmierung.
In neueren Excelversionen kann man ggf auch die Zellfunktion SORTIEREN auf das Array anwenden (Worksheetfunction.Sort), aber das habe ich noch nicht ausprobiert.
Gruß Daniel
AW: Array sortieren
07.05.2022 16:34:06
RPP63
Moin!

In neueren Excelversionen kann man ggf auch die Zellfunktion SORTIEREN auf das Array anwenden (Worksheetfunction.Sort), aber das habe ich noch nicht ausprobiert.
Ja, das geht schon.
Man muss berücksichtigen dass man ein "falsches" zweidimensionales Array benötigt.
Also entweder ein 1D-Array mittels Application.Transpose() umwandeln oder gleich ein "falsches" (1 To 5, 1 To 1) nutzen.
Sub ArrSort()
Dim a
a = Split("5 1 7 8 2")
MsgBox Join(Application.Transpose(WorksheetFunction.Sort(Application.Transpose(a))), vbLf)
End Sub
Ergibt
1
2
5
7
8
Gruß Ralf
Anzeige
AW: Array sortieren
07.05.2022 16:51:13
snb
In alle Excel versionen:

Sub M_snb()
ReDim sp(5)
For j = 1 To 6
sp(j - 1) = --InputBox("Zahl")
Next
ReDim st(Application.Max(sp))
For Each it In sp
st(Val(it)) = it
Next
MsgBox Application.Trim(Join(st))
End Sub

AW: Array sortieren
07.05.2022 17:27:44
Daniel
Aber nicht für:
- Dezimalzahlen
- Texte
- mehrfach vorkommende gleiche Zahlen.
Und wegen der vielen Lücken nicht unbedingt sinnvoll für die weitere Verarbeitung.
Zum Sortieren von eindeutigen Ganzzahlen ist das eine kreative Lösung, beschränkt sich aber auf diesen Spezialfall.
Sollte man vielleicht dazuschreiben.
Auch wenn du nicht gerne viele Worte machst, hier wäre das notwendig.
Gruß Daniel
Anzeige
AW: Array sortieren
07.05.2022 18:50:44
snb
Hast du die Startfrage gelesen ?
Meine Antwort bezieht sich darauf. Nichts mehr, nichts weniger.
AW: Array sortieren
07.05.2022 23:41:55
Daniel
"Zahlen" können auch Dezimalzahlen sein.
Es stand nirgendwo etwas davon, dass man nicht 2x die gleiche Zahl eingeben darf.
Du solltest genauer lesen und nicht soviel in das geschriebene hineininterpretieren was nicht drin steht.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige