Substitua o texto em um arquivo de texto usando VBA no Microsoft Excel

Índice

As macros abaixo podem ser usadas para substituir texto em um arquivo de texto,
por exemplo. quando você deseja alterar um separador de coluna em um arquivo de texto
antes de importá-lo para uma planilha do Excel ou depois de exportar uma planilha para um arquivo de texto.

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)" "Then MsgBox TargetFile & _" já aberto, feche e exclua / renomeie o arquivo e tente novamente. ", _ vbCritical Exit Sub End If End If F1 = FreeFile Abra SourceFile para entrada como F1 F2 = FreeFile Abra TargetFile para saída como F2 i = 1 'contador de linha Application.StatusBar =" Lendo dados de " & _ TargetFile & "…" While Not EOF (F1) If i Mod 100 = 0 Then Application.StatusBar = _ "Reading line #" & i & "in" & _ TargetFile & "…" Line Input # F1, tLine If sText "" Then ReplaceTextInString tLine, sText, rText End If Print # F2, tLine i = i + 1 Wend Application.StatusBar = "Fechando arquivos…" Fechar F1 Fechar F2 Kill SourceFile 'deletar ou arquivo iginal Nome TargetFile As SourceFile 'renomear arquivo temporário Application.StatusBar = False End Sub Private Sub 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)) If p> 0 Then 'substitua SearchString por ReplaceString NewString = "" If p> 1 Then 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) Then p = 0 Loop Até p = 0 End Sub Sub TestReplaceTextInFile () ReplaceTextInFile ThisWorkbook.Path & _ "\ ReplaceInTextFile.txt", "|", ";" 'substitui todos os caracteres de barra vertical (|) por ponto e vírgula (;) End Sub

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave