我是一名经验丰富的程序员,但对VBA不太熟悉。
我正在尝试将文档中的每个超链接文本转换为尾注,原始文本保留在文档中,尾注以纯文本形式显示 URL。
这个论坛帖子末尾的 VBA 代码已经让我差不多了,但是生成的脚注显示了原始链接文本,而不是我需要的 URL。问题线是 Rng.Endnotes(1).Range.FormattedText
线:
Sub HLnk2FtNt()
Application.ScreenUpdating = False
Dim h As Long, Rng As Range
With ActiveDocument
For h = .Hyperlinks.Count To 1 Step -1
With .Hyperlinks(h)
Set Rng = .Range
With Rng
.Collapse wdCollapseEnd
.Endnotes.Add Rng
.End = .End + 1
End With
Rng.Endnotes(1).Range.FormattedText = .Range.Hyperlinks(1).Address
.Range.Fields.Unlink
End With
Next
End With
Application.ScreenUpdating = True
End Sub
此操作失败,并在 Type mismatch
处出现
.Address
错误。该参考应该是什么?
Sub HLnk2FtNt()
Application.ScreenUpdating = False
Dim h As Long, Rng As Range
With ActiveDocument
For h = .Hyperlinks.Count To 1 Step -1
With .Hyperlinks(h)
Set Rng = .Range
With Rng
.Collapse wdCollapseEnd
.Endnotes.Add Rng
.End = .End + 1
End With
Rng.Endnotes(1).Range.FormattedText = .Range.FormattedText
.Range.Text = .TextToDisplay
With Rng.Endnotes(1).Range.Hyperlinks(1)
.TextToDisplay = .Address
End With
End With
Next
End With
Application.ScreenUpdating = True
End Sub
通过合并这个答案中的概念。