我在 Word 段落中找到一个开始和结束字符,但对于我的生活,无法确定如何设置包含这些字符的范围。这是我所拥有的摘录:
Set rngTemp = w.Paragraphs(i).Range
For iCounter = 1 To rngTemp.Characters.Count
If rngTemp.Characters(iCounter).HighlightColorIndex = wdYellow Then
lStartPos = iCounter
While rngTemp.Characters(iCounter).HighlightColorIndex = wdYellow
iCounter = iCounter + 1
Wend
lEndPos = iCounter
Run Code Online (Sandbox Code Playgroud)
使用开始和结束字符的值,如何设置包含该字符串的范围?我已经进行了多次尝试,但都没有成功。
Microsoft 的“使用范围”页面上的说明包含以下代码:
Set rngDoc = ActiveDocument.Range(Start:=0, End:=10)
Run Code Online (Sandbox Code Playgroud)
我在示例的第一行(“Set rngTemp ...”)中没有收到任何错误,这似乎与 Microsoft 的示例非常相似。但是当我尝试:
Set r = w.Paragraphs(i).Range(Start:=lStartPos, End:=lEndPos)
Run Code Online (Sandbox Code Playgroud)
我收到“编译错误:参数数量错误或属性分配无效”
我想我已经用这段代码找到了答案:
Set r = w.Range(w.Paragraphs(i).Range.Characters(lStartPos).Start, _
w.Paragraphs(i).Range.Characters(lEndPos).End)
Run Code Online (Sandbox Code Playgroud)
但它仍然产生错误。在立即窗口中,我粘贴了每一行的代码,并且每行都显示了数字。然后我更改了 set 语句以使用实际数字,这很有效。由于某种原因,VBA 不希望允许上面代码中的数字用于设置范围变量。我将原始代码(从顶部)更改为:
Set rngTemp = w.Paragraphs(i).Range
For iCounter = 1 To rngTemp.Characters.Count
If rngTemp.Characters(iCounter).HighlightColorIndex = wdYellow Then
'lStartPos = iCounter
lStartPos = w.Paragraphs(i).Range.Characters(iCounter).Start
While rngTemp.Characters(iCounter).HighlightColorIndex = wdYellow
iCounter = iCounter + 1
Wend
'lEndPos = iCounter
lEndPos = w.Paragraphs(i).Range.Characters(iCounter).End
Set r = w.Range(lStartPos, lEndPos)
Run Code Online (Sandbox Code Playgroud)
它起作用了。
| 归档时间: |
|
| 查看次数: |
8278 次 |
| 最近记录: |