Korvaa tekstitiedoston teksti Microsoft Excelin VBA: n avulla

Sisällysluettelo

Alla olevia makroja voidaan käyttää tekstitiedoston tekstin korvaamiseen,
esim. kun haluat muuttaa tekstitiedoston sarakeerotinta
ennen kuin tuot sen Excel -laskentataulukkoon tai kun lasket laskentataulukon tekstitiedostoon.

Sub ReplaceTextInFile (lähdetiedosto merkkijonona, _ sText merkkijonona, rText merkkijonona) Dim TargetFile merkkijonona, tLine merkkijonona, tString merkkijonona Dim p kokonaislukuna, i niin kauan, F1 kokonaislukuna, F2 kokonaislukuna TargetFile = "RESULT.TMP "Jos Dir (SourceFile) =" "Lopeta sitten Sub If Dir (TargetFile)" "Sitten virheen jälkeen Jatka Seuraava Kill TargetFile On Error GoTo 0 Jos Dir (TargetFile)" "Sitten MsgBox TargetFile & _" on jo auki, sulje ja poista / nimeä tiedosto uudelleen ja yritä uudelleen. ", _ vbCritical Poistu alipäästä, jos loppu Jos F1 = FreeFile Open SourceFile syötettäväksi F1 F2 = FreeFile Open TargetFile For Output as F2 i = 1 'line counter Application.StatusBar =" Tietojen lukeminen " & _ TargetFile & "…" Vaikka ei EOF (F1) Jos i Mod 100 = 0 Sitten Application.StatusBar = _ "Lukurivi #" & i & "kohdassa" & _ TargetFile & "…" Line Input #F1, tLine If sText "" Korvaa sittenTextInString tLine, sText, rText End If Print #F2, tLine i = i + 1 Wend Application.StatusBar = "Suljetaan tiedostoja …" Sulje F1 Sulje F2 Tapa SourceFile 'poista tai iginal -tiedoston nimi TargetFile As SourceFile 'nimeä väliaikainen tiedosto uudelleen Application.StatusBar = False End Sub Private Sub ReplaceTextInString (SourceString As String, _ SearchString As String, ReplaceString As String) Dim p Integer, NewString As String Do p = InStr (p + 1 , UCase (SourceString), UCase (SearchString)) Jos p> 0 Korvaa sitten SearchString seuraavalla: 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 Jos p> = Len (NewString) Sitten p = 0 Loop kunnes p = 0 Lopeta alitesti TestReplaceTextInFile () ReplaceTextInFile ThisWorkbook.Path & _ "\ ReplaceInTextFile.txt", "|", ";" '' korvaa kaikki putkimerkit (|) puolipisteillä (;) End Sub

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave