Unterschied zwischen vblf und chr(13) in Excel VBA
Schritt-für-Schritt-Anleitung
Um den Unterschied zwischen vblf
und chr(13)
in Excel VBA zu verstehen, folge diesen Schritten:
-
Öffne Excel und gehe zu Entwicklertools > Visual Basic.
-
Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" auswählst.
-
Kopiere den folgenden Code in das Modul:
Sub Unterschied_vblf_chr13()
Dim Zeile As String
Zeile = "Erste Zeile" & vbLf & "Zweite Zeile" ' Verwendung von vblf
MsgBox Zeile
Zeile = "Erste Zeile" & Chr(13) & "Zweite Zeile" ' Verwendung von chr(13)
MsgBox Zeile
End Sub
-
Starte das Makro, um die Unterschiede in der Darstellung der Zeilenumbrüche zu sehen.
Hierbei wird vblf
(ASCII 10) verwendet, um den Zeilenumbruch zu erzeugen, während chr(13)
(Wagenrücklauf) den Cursor an den Anfang der Zeile zurücksetzt.
Häufige Fehler und Lösungen
-
Fehler: Der Text erscheint nicht wie erwartet in einer Zelle.
- Lösung: Stelle sicher, dass Du die richtige Kombination verwendest. In Excel-Zellen wird oft
vblf
verwendet, während chr(13)
in VBA für Textboxen oder beim Kopieren in Textdateien wichtig ist.
-
Fehler: Kasten-Symbole erscheinen beim Einfügen von Text.
- Lösung: Entferne alle
chr(13)
-Zeichen, um die Kästen zu eliminieren. Du kannst dies mit folgendem Code erreichen:
Sub Entferne_chr13()
Dim Zelle As Range
For Each Zelle In Selection
Zelle.Value = Replace(Zelle.Value, Chr(13), "")
Next Zelle
End Sub
Alternative Methoden
Eine alternative Methode, um Zeilenumbrüche zu erzeugen, ist die Verwendung von vbCrLf
, welches sowohl chr(13)
als auch chr(10)
kombiniert:
Sub Beispiel_vbCrLf()
Dim Text As String
Text = "Erste Zeile" & vbCrLf & "Zweite Zeile"
MsgBox Text
End Sub
Wenn Du die ASCII-Werte direkt verwenden möchtest, kannst Du diese ebenfalls kombinieren:
Text = "Erste Zeile" & Chr(13) & Chr(10) & "Zweite Zeile"
Praktische Beispiele
Hier sind einige praktische Beispiele zur Anwendung von chr(13)
und vblf
in VBA:
-
Zeilen in einer Textdatei:
Sub SchreibeInDatei()
Dim Datei As String
Datei = "C:\Pfad\zu\deiner\datei.txt"
Dim fNum As Integer
fNum = FreeFile
Open Datei For Output As #fNum
Print #fNum, "Erste Zeile" & vbCrLf & "Zweite Zeile"
Close #fNum
End Sub
-
Datenübertragung zwischen Excel und Word:
Sub DatenNachWord()
Dim WordApp As Object
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
WordApp.Documents.Add
WordApp.Selection.TypeText "Erste Zeile" & vbCrLf & "Zweite Zeile"
End Sub
Tipps für Profis
-
Verwende ASC()
und ASCW()
, um zu prüfen, welche ASCII-Werte in Deinem Text enthalten sind.
-
Achte darauf, dass Zeilenumbrüche in Excel-Zellen nur mit vblf
korrekt dargestellt werden. Wenn Du Text exportierst, stelle sicher, dass Du die richtigen Kombinationen von chr(13)
und chr(10)
verwendest.
-
Nutze vbCrLf
für bessere Lesbarkeit, wenn Du in Word oder anderen Anwendungen arbeitest, die beide Zeichen benötigen.
FAQ: Häufige Fragen
1. Was ist der Unterschied zwischen vblf und chr(13)?
vblf
steht für "Visual Basic Line Feed" und entspricht ASCII 10. chr(13)
ist der Wagenrücklauf und entspricht ASCII 13. In Excel wird oft vblf
verwendet, um Zeilenumbrüche in Zellen zu erzeugen.
2. Wie kann ich Zeilenumbrüche in einer Excel-Zelle einfügen?
Verwende die Kombination Alt + Enter
, um einen Zeilenumbruch innerhalb einer Zelle zu erzeugen. Alternativ kannst Du in VBA Cells(x, y).Value = "Text" & vbLf & "Text"
verwenden.