【问题标题】:How do I set a range for Word in vba for a specific set of characters?如何在 vba 中为特定字符集设置 Word 范围?
【发布时间】:2015-03-07 03:39:30
【问题描述】:

我在 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

使用起始字符和结束字符的值,如何设置包含该字符串的范围?我做了很多尝试,但都没有成功。

微软“Working with Ranges”页面的说明有以下代码:

Set rngDoc = ActiveDocument.Range(Start:=0, End:=10)

我在示例的第一行(“Set rngTemp ...”)中没有收到任何错误,这似乎与 Microsoft 的示例非常相似。但是当我尝试时:

Set r = w.Paragraphs(i).Range(Start:=lStartPos, End:=lEndPos)

我收到“编译错误:参数数量错误或属性分配无效”

【问题讨论】:

    标签: vba range ms-word


    【解决方案1】:

    我以为我已经用这段代码找到了答案:

     Set r = w.Range(w.Paragraphs(i).Range.Characters(lStartPos).Start, _
              w.Paragraphs(i).Range.Characters(lEndPos).End)
    

    但它仍然产生错误。在即时窗口中,我粘贴了每一行的代码,并显示了每一行的数字。然后我更改了 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)
    

    它成功了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多