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

!本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本人不保证相应的兼容和可操作性。

在我的这篇《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模板扫清了障碍。

若无特别说明,本网站文章均为原创,原则上这些文章不允许转载,但是如果阁下是出于研究学习目的可以转载到阁下的个人博客或者主页,转载遵循创作共同性“署名-非商业性使用-相同方式共享”原则,请转载时注明作者出处谢绝商业性、非署名、采集站、垃圾站或者纯粹为了流量的转载。谢谢合作!
请稍后...

发表评论

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

*