Αντικαταστήστε το κείμενο σε ένα αρχείο κειμένου χρησιμοποιώντας VBA στο Microsoft Excel

Anonim

Οι παρακάτω μακροεντολές μπορούν να χρησιμοποιηθούν για την αντικατάσταση κειμένου σε αρχείο κειμένου,
π.χ. όταν θέλετε να αλλάξετε ένα διαχωριστικό στήλης σε ένα αρχείο κειμένου
πριν το εισαγάγετε σε ένα φύλλο εργασίας του 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) =" "Τότε Έξοδος από Sub If Dir (TargetFile)" "Στη συνέχεια, Σφάλμα Συνέχιση Επόμενο Kill TargetFile On Error GoTo 0 If Dir (TargetFile)" "Τότε MsgBox TargetFile & _" ήδη ανοιχτό, κλείσιμο και διαγραφή / μετονομάστε το αρχείο και δοκιμάστε ξανά. ", _ 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 'counter counter line Application.StatusBar =" Reading data from " & _ TargetFile & "…" while Not EOF (F1) If i Mod 100 = 0 Then Application.StatusBar = _ "Reading line #" & i & "in" & _ TargetFile & "…" Line Input #F1, tLine If sText "" Στη συνέχεια ReplaceTextInString tLine, sText, rText Τέλος Αν Εκτύπωση #F2, tLine i = i + 1 Wend Application.StatusBar = "Κλείσιμο αρχείων …" Κλείσιμο F1 Κλείσιμο F2 Kill SourceFile 'διαγραφή ή αρχικό αρχείο Όνομα TargetFile As SourceFile 'μετονομάστε προσωρινό αρχείο 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)) Εάν 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 Loop Μέχρι p = 0 End Sub Sub TestReplaceTextInFile () ReplaceTextInFile ThisWorkbook.Path & _ "\ ReplaceInTextFile.txt", "|", ";" «αντικαθιστά όλους τους χαρακτήρες σωλήνων (|) με ερωτηματικά (;) End Sub