txt-Dateien mit fester Breite je Spalte exportieren in Excel
Schritt-für-Schritt-Anleitung
Um eine Excel-Tabelle als txt-Datei mit fester Breite je Spalte zu exportieren, kannst du den folgenden VBA-Code verwenden. Dieser Code stellt sicher, dass die Daten in der gewünschten Spaltenbreite formatiert werden:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
und dann auf Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub speichern()
Dim fName As Variant, iZeile As Long, Inhalt(2) As Variant
On Error GoTo ErrorHandler
fName = Application.GetSaveAsFilename("TestfName.txt", "Text (*.txt), *.txt")
If fName = False Then Exit Sub
Application.ScreenUpdating = False
Workbooks.Add
With ThisWorkbook.Worksheets(1)
For iZeile = 1 To .Range("A65536").End(xlUp).Row
Inhalt(0) = CStr(.Cells(iZeile, 1))
Do While Len(Inhalt(0)) < 6
Inhalt(0) = Inhalt(0) & " "
Loop
Inhalt(1) = CStr(.Cells(iZeile, 2))
Do While Len(Inhalt(1)) < 8
Inhalt(1) = Inhalt(1) & " "
Loop
Inhalt(2) = CStr(.Cells(iZeile, 3))
Do While Len(Inhalt(2)) < 4
Inhalt(2) = Inhalt(2) & " "
Loop
ActiveWorkbook.Worksheets(1).Cells(iZeile, 1) = Inhalt(0) & Inhalt(1) & Inhalt(2)
Next iZeile
End With
ActiveWorkbook.SaveAs FileName:=fName, FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close
ErrorHandler:
Application.ScreenUpdating = True
End Sub
- Passe die Werte in den
Do While
-Schleifen an, um die gewünschte Spaltenbreite zu definieren.
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
Fehler 1: Die txt-Datei wird nicht korrekt formatiert.
Lösung: Überprüfe die Längen der Spalten in der Do While
-Schleife. Achte darauf, dass die Werte den gewünschten Längen entsprechen.
Fehler 2: Die Datei wird nicht erstellt oder gespeichert.
Lösung: Stelle sicher, dass du das richtige Verzeichnis und Dateiformat im GetSaveAsFilename
-Dialog ausgewählt hast.
Alternative Methoden
Neben der Verwendung von VBA kannst du auch manuell Daten in eine txt-Datei exportieren:
- Wähle die Daten in Excel aus.
- Kopiere die Daten (
STRG + C
).
- Öffne einen Texteditor (z.B. Notepad).
- Füge die Daten ein (
STRG + V
).
- Speichere die Datei und achte darauf, die Dateiendung als .txt zu verwenden.
Diese Methode ist jedoch weniger flexibel, wenn es um die Formatierung der Spaltenbreite geht.
Praktische Beispiele
Angenommen, du hast folgende Excel-Daten:
A |
B |
C |
230603 |
0009 |
AB |
123456 |
7890 |
CD |
Beim Export mit dem obigen VBA-Skript wird die txt-Datei wie folgt aussehen:
2306030009 AB
1234567890 CD
Die Leerzeichen werden automatisch hinzugefügt, um die festgelegte Breite einzuhalten.
Tipps für Profis
- Überlege dir, die Spaltenbreiten dynamisch zu gestalten, indem du die Breite aus einer benutzerdefinierten Tabelle liest.
- Teste dein Skript immer zuerst mit einer Kopie deiner Daten, um unerwartete Ergebnisse zu vermeiden.
- Nutze die
Debug.Print
-Anweisung, um den Wert von Variablen während der Ausführung des Codes zu überprüfen.
FAQ: Häufige Fragen
1. Wie kann ich die Spaltenbreite anpassen?
Du kannst die Werte in den Do While
-Schleifen im VBA-Code ändern, um die Spaltenbreite anzupassen.
2. Ist dieser Prozess in allen Excel-Versionen verfügbar?
Ja, das VBA-Skript funktioniert in den meisten modernen Excel-Versionen, einschließlich Excel 2010, 2013, 2016 und 2019.
3. Was ist der Unterschied zwischen txt- und csv-Dateien?
Eine txt-Datei kann beliebige Datenformate enthalten, während csv-Dateien speziell für die Speicherung von tabellarischen Daten mit durch Kommas getrennten Werten optimiert sind.