Microsoft Excel'de VBA kullanarak bir metin dosyasındaki metni değiştirin

İçindekiler

Aşağıdaki makrolar, bir metin dosyasındaki metni değiştirmek için kullanılabilir,
Örneğin. bir metin dosyasındaki sütun ayırıcıyı değiştirmek istediğinizde
bir Excel çalışma sayfasına içe aktarmadan önce veya bir çalışma sayfasını bir metin dosyasına verdikten sonra.

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) = "" Sonra Exit Sub If Dir(TargetFile) "" Sonra Hatada Devam Et Sonraki Hatada TargetFile'ı öldür GoTo 0 If Dir(TargetFile) "" Then MsgBox TargetFile & _ " zaten aç, kapat ve sil / dosyayı yeniden adlandırın ve yeniden deneyin.", _ vbCritical Exit Sub End If End If F1 = FreeFile Giriş İçin SourceFile'ı F1 Olarak Aç F2 = FreeFile TargetFile'ı Çıktı Olarak Aç F2 i = 1 ' line counter Application.StatusBar = "Verileri okuma " & _ TargetFile & "… " EOF(F1) Değilken Eğer i Mod 100 = 0 ise Application.StatusBar = _ "Satır # okuma" & i & " in " & _ TargetFile & "… " Satır Girişi #F1, tLine If sText "" Sonra ReplaceTextInString tLine, sText, rText End If Print #F2, tLine i = i + 1 Wend Application.StatusBar = "Dosyalar kapatılıyor… " F1'i kapatın F2'yi Kill SourceFile ' delete veya orijinal dosya Adı TargetFile As SourceFile ' geçici dosyayı yeniden adlandır 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)) Eğer p > 0 ise ' SearchString'i ReplaceString ile değiştirin NewString = "" Eğer p > 1 ise 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) Sonra p = 0 P = 0'a Kadar Döngü End Sub Sub TestReplaceTextInFile() ReplaceTextInFile ThisWorkbook.Path & _ "\ReplaceInTextFile.txt", "|", ";" ' tüm boru karakterlerini (|) noktalı virgülle (;) End Sub ile değiştirir

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave