增量变量的问题
问题描述:
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”的值不会增加,并且该宏给出错误:“请求的收集不存在”增量变量的问题
为什么不是值增加。
答
那么,它适用于Selection
。如果你不选择任何文字,它会给你提到的错误。但为什么过度复杂呢?此代码做什么你(好像)想:
Dim chr As Range
For Each chr In Selection.Characters
MsgBox chr.Text
Next chr
测试的值可能永远不会增加,因为提到的错误就是增量发生前点,但究竟在何处发生错误,你没有告诉我们。 –
我认为错误发生在'Set firstchar = Selection.Characters(test)' –
错误“请求的集合不存在”或“请求的集合成员不存在”?您正在循环查看文档中的所有字符,并尝试访问选择中相同数量的字符。如果您尚未选择整个文档,则会导致错误,此时选择变得无关紧要,因为您可以使用文档范围。 – arcadeprecinct