Word查找替换使用TypeText解决字符串参量过长的错误

在我的这篇《VBScript/VBA批量替换Word指定的内容》文章已经介绍了关于使用VBScript或者VBA查找替换Word的问题,但是在实际操作时,会发现查找和要替换的字符串不能超过一定的数量(大概是500个字符),否则会出现“字符串参量过长”的错误。

其实我们可以通过Selection.TypeText的办法避免这个问题,这个办法只适用于模板的替换,比如设置标记符{%TEMPLATE%},然后替换这个标记符为一段很长的文本。

具体的代码也很简单,我们就以之前那篇文章为例,做下改动,新代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
Const wdReplaceAll  = 2
 
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
 
Set objDoc = objWord.Documents.Open("C:\Scripts\Test.doc")
Set objSelection = objWord.Selection
objWord.Options.ReplaceSelection = True
objSelection.Find.Text = "{%TEMPLATE%}" ' 标记符
objSelection.Find.Forward = True
objSelection.Find.MatchWholeWord = True
objSelection.Find.Execute
objSelection.TypeText "要替换的长文本"

通过TypeText我们就有效的避免了替换长文本时的限制,但是如何查找长文本,目前我还在寻找较好的解决方案。不过解决了长文本的替换就给我们使用查找替换标记符式的Word模板扫清了障碍。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据