Erstat tekst i en tekstfil ved hjælp af VBA i Microsoft Excel

Indholdsfortegnelse

Makroerne herunder kan bruges til at erstatte tekst i en tekstfil,
f.eks. når du vil ændre en kolonneudskiller i en tekstfil
før du importerer det til et Excel -regneark, eller når du eksporterer et regneark til en tekstfil.

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 & _" allerede åbner, luk og slet / omdøb filen og prøv igen. ", _ vbCritical Exit Sub End If End If F1 = FreeFile Open SourceFile For Input As F1 F2 = FreeFile Open TargetFile For Output As F2 i = 1 'line counter Application.StatusBar =" Læser data fra " & _ TargetFile & "…" Selvom det ikke er EOF (F1) Hvis i Mod 100 = 0 derefter Application.StatusBar = _ "Læser linje #" & i & "i" & _ TargetFile & "…" Linjeindgang #F1, tLine Hvis sText "" Herefter ReplaceTextInString tLine, sText, rText End If Print #F2, tLine i = i + 1 Wend Application.StatusBar = "Closing files …" Close F1 Close F2 Kill SourceFile 'delete or iginal filnavn TargetFile As SourceFile 'omdøb midlertidig fil 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)) Hvis p> 0 Udskift derefter SearchString med ReplaceString NewString = "" Hvis p> 1 Så 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) Så p = 0 Loop indtil p = 0 Afslut Sub Sub TestReplaceTextInFile () ReplaceTextInFile ThisWorkbook.Path & _ "\ ReplaceInTextFile.txt", "|", ";" 'erstatter alle rørtegn (|) med semikolon (;) End Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave