-1

我有以下代码(不是我的),它为 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
4

1 回答 1

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
于 2015-06-07T11:35:37.927 回答