VBA实现全文件快速替换的示例代码

VBA实现全文件快速替换的示例代码

大家对于VBA处理文本文件并不陌生,Open打开文件,Line Input逐行读取处理,然后再使用Print写入到目标文件,整个过程并不复杂,但是如果源文件数据行数较多,那幺逐行读取将花费较多的时间。

Sub demo() FN1 = FreeFile Open OutFile For Output As FN1 FN2 = FreeFile Open InFile For Input As FN2 Do Until EOF(1) Line Input #1, textline '数据处理代码 Print FN2, textline Loop Close FN2 Close FN1End Sub

VBA内置的打开文本文件的方法,并无法实现读取全部文件内容,借助FileSystemObject可以实现一次性快速替换。

示例代码如下

Sub ReplaceTxt() strSrcFile = "C:\temp\test.txt" strOldTxt = "c:\111\" strNewTxt = "d:\333\" Set fso = CreateObject("Scripting.FileSystemObject") Set objRead = fso.OpenTextFile(strSrcFile, 1) strIn = objRead.readall objRead.Close Set objWrite = fso.CreateTextFile(strSrcFile) objWrite.WriteLine Replace(strIn, strOldTxt, strNewTxt) objWrite.Close set fso = NothingEnd Sub

【代码解析】

第2行代码指定源文件。第3行代码指定查找的字符串。第4行代码指定新字符串。第5行代码创建FSO对象。第6行代码打开源文件。第7行调用readall方法读取全部文件内容,保存在变量strIn中。第8行代码关闭源文件。第9行代码创建目标文件。第10行代码调用Replace函数实现全文替换,并将结果写入目标文件中。第11行代码关闭目标文件。第12代码实现对象变量占用的系统资源。

VBA实现全文件快速替换的示例代码