增量变量的问题

问题描述:

Dim chr As Range 
test = 1 

For Each chr In ActiveDocument.Range.Characters 
Dim firstChar As Word.Range 
Set firstChar = Selection.Characters(test) 
MsgBox (Selection.Characters(test)) 
MsgBox (test) 
test = test + 1 

Next chr 

这应该是选择第一个字符,然后对它做些什么,然后移动到第二个字符,那部分不会发生,因为“test”的值不会增加,并且该宏给出错误:“请求的收集不存在”增量变量的问题

为什么不是值增加。

+0

测试的值可能永远不会增加,因为提到的错误就是增量发生前点,但究竟在何处发生错误,你没有告诉我们。 –

+0

我认为错误发生在'Set firstchar = Selection.Characters(test)' –

+1

错误“请求的集合不存在”或“请求的集合成员不存在”?您正在循环查看文档中的所有字符,并尝试访问选择中相同数量的字符。如果您尚未选择整个文档,则会导致错误,此时选择变得无关紧要,因为您可以使用文档范围。 – arcadeprecinct

那么,它适用于Selection。如果你不选择任何文字,它会给你提到的错误。但为什么过度复杂呢?此代码做什么你(好像)想:

Dim chr As Range 

For Each chr In Selection.Characters 

    MsgBox chr.Text 

Next chr