我有一个包含许多嵌入式超链接的文档,可以转换为纯超链接。将它们粘贴为可点击的网址或纯文本网址并不重要,只要它实际显示网址。
例如,我需要将Microsoft Word更改为http://en.wikipedia.org/wiki/Microsoft_Word(可点击或不点击)。
在Word中,如果我选择超链接,请右键单击,选择"复制超链接,"然后只粘贴特殊文本,我得到最佳结果(不可点击的URL)。如果我记录完全相同的VBA代码,结果是原始的嵌入式链接。我玩过各种选项:关闭智能粘贴,剪切和粘贴,关闭超链接的自动形式,更改默认的粘贴选项,但这些都不会改变我的最终结果。
Sub Replace_w_URLs()
'
' Replace_w_URLs Macro
'
'
Selection.NextField.Select
Selection.Range.Hyperlinks(1).Range.Fields(1).Result.Select
Selection.Copy
Selection.TypeBackspace
Selection.PasteSpecial Link:=False, DataType:=20, Placement:=wdInLine, _
DisplayAsIcon:=False
End Sub
答案 0 :(得分:1)
如果Word识别出您粘贴的文本是URL,则问题可能是Word添加超链接的默认行为。如果你在循环中执行此操作,它就会像将光标放在URL的末尾并点击空格键一样。
避免这种情况的最简单方法是只操作超链接 Ranges 本身,只需更改文本属性即可。当您更改HyperLink.Range.Text时,它的副作用是同时删除超链接。
试一试:
Sub Replace_w_URLs()
Dim url As Range
Do While Selection.Hyperlinks.Count > 0
Set url = Hyperlinks(1).Range.Duplicate
url.Text = Hyperlinks(1).Address
Loop
End Sub
它应该用您的选择中的所有超链接替换基础URL。