2016-08-23 125 views
-1

有人可以帮我解决以下问题吗?我试图自己做,但我所能做的只是打开一个txt文件,并用静态词替换静态词。VBA:从txt替换每行文本并保存为

VBA脚本:

打开并阅读ThisVbaPath.WordsToUse.txt

开放的第一线和ThisVbaPath.BaseDoc.docx(或TXT)

查找USER_INPUT替换为USER_INPUT的所有发生从WordsToUse.txt

保存BaseDoc.docx第一线BaseDoc & First_Line.docx

关闭所有

转到下一行,做相同的,但不要求用户输入,使用前一个

如果未来

错误去当做节目,如果有任何错误(不太可能我猜)

我会用它每周约150伊线。

谢谢!

+0

嗨欢迎堆栈溢出....你已经写了任何代码到目前 – HA560

回答

-1
Sub TextFile_FindReplace() 
Dim TextFile As Integer 
Dim FilePath As String 
Dim FileContent As String 

FilePath = Application.ActiveWorkbook.Path & "\NEWTEST.txt" 
TextFile = FreeFile 
Open FilePath For Input As TextFile 
FileContent = Input(LOF(TextFile), TextFile) 


FileContent = Replace(FileContent, "FOO", "BAR") 


Print #TextFile, FileContent 
Close TextFile 
End Sub 
+0

这基本上打破了OP的工作代码。 – Comintern

0

我觉得像这样的东西应该工作?

Sub test() 

    Dim text, textReplace, findMe As String 

    findMe = InputBox("What Text To Find?") 
    Open "C:\Excel Scripts\test.txt" For Input As #1 
    Open "C:\Excel Scripts\test2.txt" For Input As #2 
    Open "C:\Excel Scripts\output.txt" For Output As #3 

    While Not EOF(1) 
    Line Input #1, text 
     While Not EOF(2) 
     Line Input #2, textReplace 
     Write #3, Replace(text, findMe, textReplace) 
     Wend 
    Wend 

    Close #1 
    Close #2 
    Close #3 


End Sub