大家对于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 fn1
end subvba内置的打开文本文件的方法,并无法实现读取全部文件内容,借助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 = nothing
end sub【代码解析】
- 第2行代码指定源文件。
- 第3行代码指定查找的字符串。
- 第4行代码指定新字符串。
- 第5行代码创建fso对象。
- 第6行代码打开源文件。
- 第7行调用readall方法读取全部文件内容,保存在变量strin中。
- 第8行代码关闭源文件。
- 第9行代码创建目标文件。
- 第10行代码调用replace函数实现全文替换,并将结果写入目标文件中。
- 第11行代码关闭目标文件。
- 第12代码实现对象变量占用的系统资源。
到此这篇关于vba实现全文件快速替换的示例代码的文章就介绍到这了,更多相关vba文件替换内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论