Microsoft Excel

Herbers Excel/VBA-Archiv

Zeichen in Textdatei suchen ersetzen.

Betrifft: Zeichen in Textdatei suchen ersetzen. von: Michael Staller
Geschrieben am: 15.08.2004 10:22:29

Hallo

wie kann ich in einer Textdatei das "," durch einen ";" mit einem VBA-Makro ersetzen.

vielen Dank für die Hilfe

mfg
Michael Staller

  


Betrifft: AW: Zeichen in Textdatei suchen ersetzen. von: Ramses
Geschrieben am: 15.08.2004 10:44:18

Hallo

die einfachste Variante:
TXT-Datei in NotePad öffnen, SUCHEN und ERSETZTEN, Speichern, Fertig

Aber das ist dir wahrscheinlich zu gewöhnlich ;-)

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



Gruss Rainer


 

Beiträge aus den Excel-Beispielen zum Thema "Zeichen in Textdatei suchen ersetzen."