Nachfolgend eine kleine einfache Prozedur, mit der sich ein neues Element innerhalb eines Arrays an eine bestimmte Position einfügen lässt. Sub ZeileInFeldEinfuegenEinfach(ByRef Feld() As String, _ PlatzNummer As Long, EinfuegeText As String) Feld(PlatzNummer) = EinfuegeText + vbCrLf + Feld(PlatzNummer) Feld = Split(Join(Feld(), vbCrLf), vbCrLf, -1, vbBinaryCompare) End Sub Aufrufbeispiel: Dim FeldT() As String ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegenEinfach FeldT(), 1, "Zeile 1 neu" MsgBox Join(FeldT(), "|") Anmerkungen: ' Feldzeilen enthalten kein vbCrLf Sub ZeileInFeldEinfuegen(ByRef Feld() As String, _ PlatzNummer As Long, EinfuegeText As String) Feld(PlatzNummer) = EinfuegeText + vbCrLf + Feld(PlatzNummer) Feld = Split(Join(Feld(), vbCrLf), vbCrLf, -1, vbBinaryCompare) End Sub ' falls CRLF im Text selbst vorkommt Sub ZeileInFeldEinfuegenAT(ByRef Feld() As String, _ PlatzNummer As Long, EinfuegeText As String, Trenner As String) Feld(PlatzNummer) = EinfuegeText + Trenner + Feld(PlatzNummer) Feld = Split(Join(Feld(), Trenner), Trenner, -1, vbBinaryCompare) End Sub ' Feldzeilen enthalten kein vbCrLf Sub ZeileInFeldLoeschen(ByRef Feld() As String, PlatzNummer As Long) Dim KillFlag As String KillFlag = Chr$(1) ' z.B. Feld(PlatzNummer) = KillFlag ' diese Zeile soll gelöscht werden Feld = Split(Replace(Join(Feld(), vbCrLf), KillFlag + vbCrLf, "", _ 1, -1, vbBinaryCompare), vbCrLf, -1, vbBinaryCompare) End Sub ' falls CRLF im Text selbst vorkommt Sub ZeileInFeldLoeschenAT(ByRef Feld() As String, PlatzNummer As Long, _ Trenner As String, KillFlag As String) ' Hinweis: Trenner <> KillFlag! Feld(PlatzNummer) = KillFlag ' diese Zeile soll gelöscht werden Feld = Split(Replace(Join(Feld(), Trenner), KillFlag + Trenner, "", _ 1, -1, vbBinaryCompare), Trenner, -1, vbBinaryCompare) End Sub Beispiele Dim FeldT() As String: ' Eine Zeile einfügen ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegen FeldT(), 1, "Zeile 1 neu" MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde eingefügt" MsgBox UBound(FeldT()) ' Mehrere Zeilen einfügen ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ' gleich zwei Zeilen einfügen ZeileInFeldEinfuegen FeldT(), 1, "Zeile 1 neu" + vbCrLf + "Zeile 2 neu" MsgBox Join(FeldT(), "|"), , "Zwei Zeilen wurde eingefügt" MsgBox UBound(FeldT()) ' Eine Zeile einfügen Version AT, falls vbCrLF$ im FeldT() vorkommen könnte ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegenAT FeldT(), 1, "Zeile 1 neu", Chr$(1) MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde eingefügt, Version AT" MsgBox UBound(FeldT()) ' Mehrere Zeilen einfügen Version AT, falls vbCrLF$ im FeldT() vorkommen könnte ' Hier: Mehrere Zeilen einfügen, z.B. 3 Leerzeilen vor Zeile 1 ReDim FeldT(1) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" ZeileInFeldEinfuegenAT FeldT(), 1, String$(2, Chr$(1)), Chr$(1) MsgBox Join(FeldT(), "|"), , "Drei Leerzeilen wurden eingefügt Version AT" MsgBox UBound(FeldT()) ' Eine Zeile löschen ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" ZeileInFeldLoeschen FeldT(), 1 MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde gelöscht" MsgBox UBound(FeldT()) ' Eine Zeile löschen Version AT, falls vbCrLF$ im FeldT() vorkommen könnte ReDim FeldT(2) FeldT(0) = "Zeile 0 Start" FeldT(1) = "Zeile 1 Start" FeldT(2) = "Zeile 2 Start" ZeileInFeldLoeschenAT FeldT(), 1, Chr$(1), Chr$(2) ' Trenner <> KillFlag! MsgBox Join(FeldT(), "|"), , "Eine Zeile wurde gelöscht Version AT" MsgBox UBound(FeldT()) Dieser Tipp wurde bereits 4.265 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. |
Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB Tipp des Monats ![]() Dieter Otter PopUp-Menü wird nicht angezeigt :-( In diesem Tipp verraten wir Ihnen, wie Sie Probleme mit PopUp-Menüs umgehen können, wenn diese unter bestimmten Umständen einfach nicht angezeigt werden. sevGraph (VB/VBA) ![]() Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! |
||||||||||||||||
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. |