Макросите по -долу могат да се използват за замяна на текст в текстов файл,
напр. когато искате да промените разделителя на колони в текстов файл
преди да го импортирате в работен лист на Excel или след като експортирате работен лист в текстов файл.
Sub ReplaceTextInFile (SourceFile As String, _ sText As String, rText As String) Dim TargetFile As String, tLine As String, tString As String Dim p As Integer, i As Long, F1 As Integer, F2 As Integer TargetFile = "RESULT.TMP "If Dir (SourceFile) =" "then Exit Sub If Dir (TargetFile)" "Then On Error Resume Next Kill TargetFile On Error GoTo 0 If Dir (TargetFile)" "Тогава MsgBox TargetFile & _" вече е отворен, затворен и изтрит / преименувайте файла и опитайте отново " & _ TargetFile & "…" Макар и да не е EOF (F1) Ако i Mod 100 = 0, тогава Application.StatusBar = _ "Четене на ред #" & i & "в" & _ TargetFile & "…" Вход за ред #F1, tLine Ако sText "" Тогава ReplaceTextInString tLine, sText, rText Край Ако Печат #F2, tLine i = i + 1 Wend Application.StatusBar = "Затваряне на файлове …" Затваряне F1 Затваряне F2 Kill SourceFile 'изтриване или Изначален файл Име TargetFile Като SourceFile „преименувайте временен файл Application.StatusBar = False End Sub Private Private Re ReplaceTextInString (SourceString As String, _ SearchString As String, ReplaceString As String) Dim p As Integer, NewString As String Do p = InStr (p + 1 , UCase (SourceString), UCase (SearchString)) Ако p> 0, тогава 'заменете SearchString с ReplaceString NewString = "" Ако p> 1 Тогава NewString = Mid (SourceString, 1, p - 1) NewString = NewString + ReplaceString NewString = NewString + Mid (SourceString, _ p + Len (SearchString), Len (SourceString)) p = p + Len (ReplaceString) - 1 SourceString = NewString End If If p> = Len (NewString) Тогава p = 0 Цикъл До p = 0 End Sub Sub TestReplaceTextInFile () ReplaceTextInFile ThisWorkbook.Path & _ "\ ReplaceInTextFile.txt", "|", ";" 'заменя всички символи (|) с точка и запетая (;) End Sub