Word宏:在脚注中更改第一个字符

时间:2015-06-07 10:26:24

标签: vba ms-word word-vba word-2013

我有以下代码(不是我的代码),它为MS Word(2013)中的每个脚注添加了一个选项卡。

代码工作正常,但如果它不是每次都添加一个标签,它会更好地工作,但它只是用一个标签替换第一个字符(无论它是什么 - 标签,空格)。

这样,如果宏运行两次我没有两个标签,等等。

Sub TabFootnotes()
    For s = 1 To ActiveDocument.Footnotes.Count
        ActiveDocument.Footnotes(s).Range.Select
        With Selection
            .Collapse Direction:=wdCollapseStart
            .MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            .TypeText Text:=vbTab
        End With
    Next
End Sub

1 个答案:

答案 0 :(得分:0)

但是,如果你这样做,你将不得不想出一种方法来确定第一个角色是否可以替换。这是因为当您将该空间更改为其他内容时,此内容将成为脚注Range的一部分。因此,当宏再次运行时,您需要知道是否必须保留或替换第一个字符。

Dim f As Footnote

For Each f In ActiveDocument.Footnotes
  With f.Range.Characters(1)
    If .Text = vbTab Or .Text = " " Then 'Use any other sensible detection logic here
      .Text = vbTab
    Else
      .InsertBefore vbTab
    End If
  End With
Next