VBScipt脚本如何调用word文档的查找替换功能?
本人想用Word文档打开一个文件,然后替换里面的几个字符,比如:不过人家的渔船一般都是中型渔船,聂云这种单人作业的小渔船已经越来越少了,工业化发展带来的是集群效应,大中型渔船的捕捞不论从效率还是利润来看,都超出聂云这种小渔船不知道多少倍。把这段文字里的逗号,替换成^P实现换行,求大神告知该怎么做?用查找(ctrl+F)里的替换就可以了 如果想用VB脚本来做的话,会相当麻烦,需要引用一个word编辑控件。远不如在word里直接操作,简单省事儿。
例子:
Dim objWord
Dim ObjDoc
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
Set ObjDoc = objWord.Documents.Open("F:\桌面\Test.docx")'自行修改
With objWord.Selection.Find
.Text = ","
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute , , , , , , , , , , 2
End With
MsgBox("处理完毕")
ObjDoc.Save
objWord.Quit
可以参考http://ask.zol.com.cn/x/8070991.html
弄成拖入处理
Const wdReplaceAll = 2
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Open("D:\Demo.docx") '换成你的文档的绝对路径,如果批量处理时可考虑把路径存在文本文件里
Set objFind = objWord.ActiveWindow.Selection.Find
objFind.Forward = true
objFind.Text = ","
objFind.Replacement.Text = "^l" 'Word 2013版本的手动换行符
objFind.Execute ,,,,,,,,,,wdReplaceAll
objDoc.Close()
objWord.Quit() Vjmms 发表于 2019-7-9 10:28
Const wdReplaceAll = 2
Set objWord = CreateObject("Word.Application")
谢谢大神,可以用 mxc123 发表于 2019-7-9 09:42
例子:
Dim objWord
Dim ObjDoc
谢谢大神,测试成功,可以用 @mxc123@Vjmms 两位大神, 如果是用vbs代码替换一个TXT文本里的第15行的一整行内容,要怎么实现呢? 文本比较小可以试一下,性能应该不咋滴
Dim FSO
Dim OldFile
Dim NewFile
Dim textline
Dim replacetext
Dim LineCount
LineCount = 1
replacetext = "52pojie.cn" '要替换的文本
Set FSO = CreateObject("Scripting.FileSystemObject")
Set OldFile = FSO.OpenTextfile("OldFile.txt") '原文本
Set NewFile = FSO.CreateTextFile("NewFile.txt",True) '生成新的文本
Do While OldFile.AtEndOfStream<> True
if LineCount = 15 then'第15行
Call NewFile.Writeline(replacetext)
textline = OldFile.Readline'跳过一行
else
textline = OldFile.Readline'按行读取
Call NewFile.Writeline(textline)
end if
LineCount = LineCount + 1
Loop
OldFile.close
NewFile.close
MsgBox("处理完毕")
页:
[1]