在Word VBA中,将可见尾注文本设置为超链接URL

问题描述 投票:0回答:1

我是一名经验丰富的程序员,但对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
 错误。

该参考应该是什么?

vba ms-word
1个回答
0
投票
我想我已经或多或少地破解了它 - 尽管也许有更好的方法?

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
通过合并

这个答案中的概念。

© www.soinside.com 2019 - 2024. All rights reserved.