0
我想循环逐个Word文档。我目前使用的ActiveDocument.Words集合看起来很简单。但是,有一个奇怪的问题,如果我改变一个单词的内容,内部指针不会移动到下一个单词,而是再次指向刚被修改的同一单词。而且在某些情况下,这会产生一种情况,例行程序无限循环地停留在单个单词上。Word VBA:通过循环修改单词ActiveDocument.Words创建一个无限循环
一个例子代码:
Sub LoopWords()
Dim wd As Range
i = 0
For Each wd In ActiveDocument.Words
If wd.Text = "foo " Then
wd.Text = wd.Text & "bar "
End If
'Prevent infinite loop:
i = i + 1
If i > 99 Then
Exit For
End If
Next wd
End Sub
因此,例如,使用含有短语这个宏的文档“中有一些在这里FOO”。导致“有一些foo吧台吧台吧台吧台吧台吧台吧台吧台吧台吧台吧...”等等。
那么为什么地球上它的行为如此呢?
如何在需要时逐字循环并修改文字?
你不应该修改内'用于each'环......这些循环像getter和他们都应该返回任何东西info/data ...我不确定这是什么原因,但... – 2014-09-22 11:01:19