【发布时间】:2015-04-28 07:42:22
【问题描述】:
我正在使用以下 VBA 宏在文档中的所有书签超链接之后添加页码:
Sub InsertPageRefs()
Application.ScreenUpdating = False
Dim hLnk As Hyperlink, Rng As Range
For Each hLnk In ActiveDocument.Hyperlinks
With hLnk
If InStr(.SubAddress, "_Toc") = 0 And .Address = "" Then
Set Rng = .Range
With Rng
.Collapse Direction:=wdCollapseEnd
.InsertAfter Text:=" (See page #)"
.Font.Underline = wdUnderlineNone
End With
ActiveDocument.Fields.Add Range:=Rng.Characters(InStr(Rng, "#")), Text:="PAGEREF " & .SubAddress
End If
End With
Next
Set Rng = Nothing
Application.ScreenUpdating = True
Application.ScreenRefresh
MsgBox ActiveDocument.Hyperlinks.Count & " page numbers have been added.", vbOKOnly
End Sub
但是,它产生了不良结果。
超链接的蓝色部分溢出到添加的文本中。
当我将结果文件保存为 HTML 时,它会创建一堆疯狂的跨度标签。我不希望这样,因为我要将 HTML 转换为 Kindle 的 .mobi 并且所有 span 标签都会在我的 .mobi 中造成混乱。
如何去除所有格式并以“普通”字样插入页码?
【问题讨论】:
-
换句话说,我希望插入的文本继承它被插入的段落的样式。
-
不要弄乱底层标记代码。