【问题标题】:VBA WORD Labels at start at end of selection选择结束时开始的VBA WORD标签
【发布时间】:2015-03-17 11:13:28
【问题描述】:

我正在尝试选择文本并在开始/结束处添加一些标签,并在选择的每个段落中做一些事情,但我不知道为什么会这样::

Sub TESTBotones()
    Dim p As Paragraph, i As Integer, total As Integer, r As Range
    Set r = Selection.Range
    total = Selection.Paragraphs.Count
    For i = 1 To total
        Set p = r.Paragraphs(i)
        p.Range.Text = "***" & p.Range.Text
    Next
    r.Text = "((BOTONES))" & Chr(13) & r.Text & Chr(13) & "((/BOTONES))" & Chr(13)
    Debug.Print r.Paragraphs.Count

End Sub

如你所见,如果你执行这个宏,在Debug.print行中,退出For循环后段落数减少1...WHY??

【问题讨论】:

    标签: vba ms-word selection labels


    【解决方案1】:

    试试这个工作正常:)

    Sub TESTBotones()
        Dim p As Paragraph, i As Integer, total As Integer, r As Range
        Set r = Selection.Range
        total = Selection.Paragraphs.Count
        For i = 1 To total
            Set p = r.Paragraphs(i)
            p.Range.InsertBefore "***"
        Next
        r.InsertBefore "((BOTONES))" & Chr(13)
        r.InsertAfter Chr(13) & "((/BOTONES))" & Chr(13)
        Debug.Print r.Paragraphs.Count
    End Sub
    

    【讨论】:

    • 迟到了,但还是少了 1 个 :S
    • 我您选择了 3 个段落,这将计为 5,因为我们要添加 2 个段落...选择之前 1 个,选择之后 1 个
    • 那为什么我的版本在它离开 For 循环的那一刻少了 1 呢???
    • 只需在 [p.Range.Text = "***" & p.Range.Text] 行后添加 [r.Select] for 循环,并逐行调试此代码并查看你选择的范围,你会知道发生了什么......
    • 好吧,当它退出循环时,Selections.paragraphs.count 会减少 1 xDDD。我正在保存开始和结束
    【解决方案2】:

    好的,这样解决了:

    Sub Pestañas()
        Dim p As Paragraph, i As Integer, j As Integer, total As Integer, r As Range, ini As Long, fin As Long, menos As Integer
        Set r = Selection.Range
        ini = Selection.Start
        fin = Selection.End
        If ini = fin Then Exit Sub
        For i = 1 To total
           Set p = r.Paragraphs(i)
           p.Range.Text = "***" & p.Range.Text
        Next
        r.SetRange Start:=ini, End:=fin
        r.Text = "((THING))" & Chr(13) & r.Text & "((OTHER THING))" & Chr(13)
    
    
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2016-01-11
      • 1970-01-01
      • 2016-10-31
      • 2016-02-12
      相关资源
      最近更新 更多