在 Microsoft Word VBA 中,Word.Range([Start],[End]).. 的参数的性质是什么?

问题描述 投票:0回答:1

在 Microsoft Word VBA 中,

Range([Start],[End])
.. 的参数的性质是什么?

它们是基数 0 还是基数 1..?它们应该是一个选择范围吗?或者绝对角色位置..?他们的运作方式令人困惑。

Microsoft Document.Range 文档对参数进行了以下说明。这意味着它们是绝对的角色位置,但这不是它们的行为方式......

Start  Optional   Variant   The starting character position.
End    Optional   Variant   The ending character position.

这是我正在做的一个例子......

比如说,我有一份仅包含文本

xyz
的文档。

?ActiveDocument.Range(0,0) gives me a zero-length string where I expected `x`.
?ActiveDocument.Range(0,1) gives me `x` as I expected.
?ActiveDocument.Range(1,1) then gives me another zero-length string.
?Mid(ActiveDocument.Range.Text,1,1) gives me `x` and is much more familiar.

所以在我看来

Start
End
更像是一个选择范围,而不是绝对位置。但我仍然不明白何时
Start=End
为什么它给出零长度字符串。

这些值就像是字符之间的空格的绝对位置。

vba ms-word
1个回答
0
投票

文档对此不太清楚:根据Microsoft

Start
End
定义了开始结束字符位置。他们没有解释 结束字符 的确切含义,但从他们给出的示例中,您可以得出结论,结束位置处的字符 包括在内:

此示例将粗体格式应用于中的前 10 个字符 活动文档。

ActiveDocument.Range(Start:=0, End:=10).Bold = True

很明显,范围从索引 0 开始,不包括

End
处的字符(否则你会得到 11 个字符,而不是 10 个)。

这符合您的测试 - 开始和结束的值相同将导致 0 个字符。

© www.soinside.com 2019 - 2024. All rights reserved.