好的,我搜索过并搜索过,希望有人可以帮助我。
我一直在尝试使用VBScript程序打开word文档,搜索特定的char并用Addin字段替换它(即{SEQ @})
这是我到目前为止所拥有的:
1 Const wdReplaceAll = 2
2 Set objWord = CreateObject("Word.Application")
3 objWord.Visible = True
4
5 Set ObjDoc = objWord.Documents.Open("C:\path\to\.doc")
6 Set objSelection = objWord.Selection
7
8 objSelection.Find.Text = "@"
9 objSelection.Find.Forward = True
10 objSelection.MatchWholeWord = True
11
12 objSelection.Find.Replace.Text = "replacement text"
13
14 objSelection.Find.Execute ,,,,,,,,,,wdReplaceAll
此代码适用于“查找/替换”,但不适用于字段。
很多帮助会很棒!谢谢!
答案 0 :(得分:2)
Replace
替换文字,但您想添加字段。那是完全不同的事情。我建议Find
搜索文本(保留选中的文字),然后Add
字段(替换所选文字):
With objWord.Selection
.Find.Text = "@"
.Find.Forward = True
.Find.MatchWholeWord = True
.Find.Execute
.Fields.Add .Range, -1, "SEQ @", True
End With
要替换所有出现的搜索字符串,您必须创建一个循环,该循环一直执行.Find.Execute
,直到找不到更多的匹配项。 Execute
方法的返回值表示是否找到了其他匹配项。
With objWord.Selection
.Find.Text = "@"
.Find.Forward = True
.Find.MatchWholeWord = True
Do
found = .Find.Execute
If found Then .Fields.Add .Range, -1, "SEQ @", True
Loop While found
End With
在运行上述代码之前,请确保光标位于文档的开头,否则您可能会错过搜索文本的出现。