ich habe auf einer Form eine Textbox in der längere Texte eingegeben werden können. Wie kann ich diese Texte nun Zeile für Zeile auslesen ?
Gruss
Holger
dim EinzelTexte() as string
EinzelTexte = Split(Textbox1.Text, Chr(10))
Msgbox "Erste Zeile: " & EinzelTexte(0)
bei automatischen Zeilenumbrüchen wird es sehr schwierig.'...
For i = 0 To UBound(EinzelTexte)
MsgBox "Zeile" & i + 1 & ": " & EinzelTexte(i)
Next i
'...
Gruß,Sub tt()
Dim x
x = Split([B2], vbLf)
[C2].Resize(UBound(x) + 1) = WorksheetFunction.Transpose(x)
End Sub
Um Texte aus einer Textbox in Excel VBA zeilenweise auszulesen, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden:
Textbox auf dem Formular erstellen: Füge eine Textbox zu deinem UserForm hinzu.
VBA-Editor öffnen: Drücke ALT + F11
, um den VBA-Editor zu öffnen.
Code einfügen: Kopiere den folgenden Code in das Codefenster des UserForms:
Dim EinzelTexte() As String
EinzelTexte = Split(TextBox1.Text, vbLf) ' Zeilen trennen
For i = 0 To UBound(EinzelTexte)
MsgBox "Zeile " & i + 1 & ": " & EinzelTexte(i)
Next i
Textbox testen: Gib einige Zeilen Text in die Textbox ein und führe den Code aus, um jede Zeile einzeln anzuzeigen.
Fehler: Text wird nicht korrekt aufgeteilt
vbLf
verwendest, um die Zeilen zu trennen. Bei Verwendung von Chr(10)
kann es zu Problemen kommen, wenn der Text nicht korrekt formatiert ist.Fehler: Array-Index außerhalb des Bereichs
Split()
füllst. Füge eine Bedingung hinzu:If Len(TextBox1.Text) > 0 Then
EinzelTexte = Split(TextBox1.Text, vbLf)
End If
Falls du eine andere Methode zur Verarbeitung der Texte benötigst, kannst du auch die Resize
-Methode nutzen, um die Zeilen in Zellen zu schreiben:
Sub SchreibeInZellen()
Dim x
x = Split(TextBox1.Text, vbLf)
Range("C2").Resize(UBound(x) + 1) = WorksheetFunction.Transpose(x)
End Sub
Diese Methode ist nützlich, wenn du die Zeilen in Excel-Zellen anstelle von MsgBoxen anzeigen möchtest.
Hier sind einige praktische Beispiele, wie du den Text aus einer Textbox zeilenweise verarbeiten kannst:
Text in Zellen schreiben:
SchreibeInZellen
-Code, um den Text in die Zellen der Spalte C zu übertragen.Anzeige in einer ListBox:
ListBox1.Clear
For i = 0 To UBound(EinzelTexte)
ListBox1.AddItem EinzelTexte(i)
Next i
Nutze die Join
-Funktion, um ein Array wieder in einen String umzuwandeln, falls du die Zeilen später wieder zusammenführen möchtest.
Achte darauf, die Textbox-Eingaben regelmäßig zu validieren, um sicherzustellen, dass die Daten korrekt verarbeitet werden.
Bei der Arbeit mit großen Textmengen könnte der Einsatz von StringBuilder
in VBA die Leistung verbessern.
1. Wie kann ich die Anzahl der Zeilen in der Textbox zählen?
Du kannst die Anzahl der Elemente im Array EinzelTexte
mit UBound
ermitteln:
Dim AnzahlZeilen As Long
AnzahlZeilen = UBound(EinzelTexte) + 1
2. Was tun, wenn der Text in der Textbox Zeilenumbrüche enthält, die nicht von der Enter-Taste erzeugt wurden?
In solchen Fällen kannst du alternative Trennzeichen wie vbCr
oder vbCrLf
ausprobieren, um den Text korrekt aufzuteilen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen