Sie haben ein Array und wollen dass z.B. das 3. Element an die Position 1 schieben, wobei die Elemente 1 und 2 jeweils nach hinten rutschen sollen? Oder: Das Element 2 soll um 10 Elemente nach hinten verschoben werden. Oder... Mit nachfolgender Funktion geht's ganz einfach - in jede Richtung. ' Array-Element um x-Positionen nach vorne/hinten ' verschieben Public Function MoveInList(vList As Variant, _ ByVal nElement As Long, _ ByVal nMove As Long) Dim i As Long Dim vTemp As Variant Dim nSize As Long Dim nMode As Integer ' Dimensionsgröße nSize = UBound(vList) ' Plausibilitätsprüfungen If nElement + nMove < 0 Then nMove = nMove - (nMove + nElement) End If If nElement + nMove > nSize Then nMove = nSize - nElement End If ' Mode: nach hinten oder nach vorne verschieben? ' (Vorzeichen ermitteln) nMode = Sgn(nMove) ' Gültiger Wert? If nMode <> 0 Then ' zu verschiebendes Element "merken" vTemp = vList(nElement) ' Jetzt die einzelne Elemente verschieben For i = nElement + nMode To nElement + nMove Step nMode vList(i - nMode) = vList(i) Next i ' Element an die gewünschte Position setzen vList(nElement + nMove) = vTemp End If End Function Beispiel: sText(0) = "Anton" sText(1) = "Berta" sText(2) = "Christa" sText(3) = "Dieter" sText(4) = "Egon" sText(5) = "Friedrich" sText(6) = "Gunther" sText(7) = "Heinrich" Das Element 3 (Dieter) soll jetzt zwei Position nach hinten (unten) verschoben werden, so dass Egon und Friedrich nach vorne rutschen: ' Element 3 nach Position 5 schieben MoveInList sText(), 3, 2 Und heraus kommt jetzt folgende Reihenfolge: sText(0) = "Anton" sText(1) = "Berta" sText(2) = "Christa" sText(3) = "Egon" sText(4) = "Friedrich" sText(5) = "Dieter" sText(6) = "Gunther" sText(7) = "Heinrich" Dieser Tipp wurde bereits 34.525 mal aufgerufen.
Anzeige
![]() ![]() ![]() Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Neu! sevEingabe 3.0 ![]() Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |