joh*_* j. 10 vba ms-word ms-office word-vba
有没有办法为超链接应用"自动更新"样式?
我相信,这个问题并非无足轻重.
当您通常单击超链接时,它会将其颜色更改为紫色.接下来,如果您保存,关闭然后重新打开文档,该链接将更新回蓝色.这是Word的默认行为,不需要使用任何宏.
我试图用VBA复制这种行为.这是代码:
Sub Test1()
Selection.Range.Hyperlinks(1).Range.Fields(1).Result.Style = Word.WdBuiltinStyle.wdStyleHyperlinkFollowed
End Sub
Run Code Online (Sandbox Code Playgroud)
要使其工作,只需将插入符号放入链接,运行宏,然后查看结果:
这样可以正常工作,但在保存,关闭然后重新打开文档后,这些访问过的链接将不会自动更新.请参见下图中的差异.正常打开"Google"链接,使用鼠标Ctrl键单击; 使用宏打开了"StackOverflow"链接:
正如我已经说过的,我想让我的VBA打开链接(StackOverflow)也可以自动更新(如谷歌).
是的,我理解,有一个解决方法 - 只需创建另一个宏,每次打开文档时都会启动它,并将所有紫色超链接更改回蓝色.但是,这只是解决方法,我不喜欢它.使用它,我们使用从"永久紫罗兰"到"永久蓝"的转换,而不是使用"临时紫"(这意味着,可以自动更新而无需任何额外的努力).
希望一切都清楚.提前致谢.
更新(已经发布了几个答案后添加).
是的,我明白,这会奏效:
Sub Test1()
On Error Resume Next 'To avoid an error in case if the link isn't reachable
Selection.Hyperlinks(1).Follow
End Sub
Run Code Online (Sandbox Code Playgroud)
但我想要模拟以下内容,而不是在浏览器中真正打开链接.这就是为什么,我不能使用Selection.Hyperlinks(1).Follow.
您需要删除该行,链接将在跟随后更改,并在重新打开文档后更改回来。
Selection.Range.Hyperlinks(1).Range.Fields(1).Result.Style = Word.WdBuiltinStyle.wdStyleHyperlinkFollowed
Run Code Online (Sandbox Code Playgroud)