wie kann ich in einer Textdatei das "," durch einen ";" mit einem VBA-Makro ersetzen.
vielen Dank für die Hilfe
mfg
Michael Staller
Sub Read_Extern_File_and_Replace_Signs()
'(C) Ramses
Dim i As Long, n As Integer
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim txtlines As Long
'Für Office97 muss das Array TextArr als String definiert werden
'Entdeckt duch Gerd Z aus dem Herber Forum
Dim textArr As Variant
Dim ReadFile As String, tempStr As String
'Name der Datei in der die Semikola ersetzt werden sollen
ReadFile = "C:\Demo.csv"
Close #1
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
'Zähler auf 0 setzen
txtlines = 0
Do While Not EOF(1) ' Schleife bis Dateiende.
Input #1, Text1 ' Hilfsvariable zum einlesen verwenden
'Zähler hochzählen
txtlines = txtlines + 1
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
Open ReadFile For Input As #1 ' Datei zum Einlesen öffnen.
'Array neu auf die Anzahl der Linien initialisieren
ReDim textArr(txtlines)
'Einlesen der Dateien in das Array
For i = 1 To txtlines
'Zeile einlesen
Line Input #1, textArr(i)
'temporär übergeben
tempStr = textArr(i)
'Schleife um zu ersetzende Zeichen im String zu suchen
For n = 1 To Len(tempStr)
'zuerst wird das Komma gegen ein Semikolon ersetzt
If Mid(tempStr, n, 1) = "," Then
tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ";")
End If
Next n
'Der korrigierte String wird wieder in das array zurückgeschrieben
textArr(i) = tempStr
Next i
'File schliessen
Close #1
'File zum schreiben wieder öffnen
Open ReadFile For Output As #1
For i = 1 To txtlines
'Array an die jeweilige Zeile zurückschreiben
Print #1, textArr(i)
Next i
'Schliessen
Close #1
'Alle Zeichen ersetzt :-))
End Sub
Um in einer Textdatei Zeichen wie z.B. das Komma (,
) durch ein Semikolon (;
) zu ersetzen, kannst du ein VBA-Makro verwenden. Hier sind die Schritte, um dies zu erreichen:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Kopiere den folgenden Code in das Modul:
Sub Read_Extern_File_and_Replace_Signs()
Dim i As Long, n As Integer
Dim Text1 As String
Dim txtlines As Long
Dim textArr As Variant
Dim ReadFile As String, tempStr As String
' Name der Datei in der die Semikola ersetzt werden sollen
ReadFile = "C:\Demo.csv"
Close #1
' Datei öffnen und Anzahl der Zeilen zählen
Open ReadFile For Input As #1
txtlines = 0
Do While Not EOF(1)
Input #1, Text1
txtlines = txtlines + 1
Loop
Close #1
' Array initialisieren und Datei erneut öffnen
ReDim textArr(txtlines)
Open ReadFile For Input As #1
For i = 1 To txtlines
Line Input #1, textArr(i)
tempStr = textArr(i)
For n = 1 To Len(tempStr)
If Mid(tempStr, n, 1) = "," Then
tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ";")
End If
Next n
textArr(i) = tempStr
Next i
Close #1
' Datei zum Schreiben wieder öffnen
Open ReadFile For Output As #1
For i = 1 To txtlines
Print #1, textArr(i)
Next i
Close #1
End Sub
Passe den Dateipfad in ReadFile
an, um auf deine Textdatei zu verweisen.
Führe das Makro aus, um die Zeichen in der Textdatei zu ersetzen.
Fehler: "Datei nicht gefunden"
Fehler: "Typenkonflikt"
Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Notepad-Methode verwenden:
Strg + H
, um das Fenster "Suchen und Ersetzen" zu öffnen.,
) und das neue Zeichen (;
) ein.Angenommen, du hast eine CSV-Datei mit folgendem Inhalt:
Name,Alter,Stadt
Max,30,Berlin
Lisa,25,München
Nach dem Ausführen des Makros wird der Inhalt wie folgt aussehen:
Name;Alter;Stadt
Max;30;Berlin
Lisa;25;München
1. Wie kann ich mehrere Zeichen gleichzeitig ersetzen?
Du kannst das Makro so anpassen, dass es in einer Schleife mehrere If
-Bedingungen verwendet, um verschiedene Zeichen zu ersetzen.
2. Funktioniert das auch mit anderen Dateiformaten?
Das VBA-Makro ist hauptsächlich für Textdateien (TXT, CSV) geeignet. Bei anderen Formaten kann es zu Problemen kommen.
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