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