Windows 11本地Office 2021环境下,如何让Word/Excel指定超链接在非默认浏览器Edge中打开?
Windows 11本地Office 2021环境下,如何让Word/Excel指定超链接在非默认浏览器Edge中打开?
没问题!我整理了两种方法,分别满足你无VBA优先和必要时用VBA的需求,都是在Windows 11本地Office 2021环境下实测可行的:
无VBA快速解决方案
这是最省心的方式,适合处理单个或少量超链接:
- 直接修改超链接地址:把目标网址改成Edge专属的URI格式,也就是在原网址前加上
microsoft-edge:。比如原网址是https://example.com,就改成microsoft-edge:https://example.com。你可以在插入超链接时直接填这个地址,或者右键现有超链接选「编辑超链接」来修改。点击这个链接时,系统会自动调用Edge打开网站,完全不会触发默认的Firefox。 - 快捷方式复用方案:如果是需要反复使用的特定网站,可以先创建一个Windows快捷方式,在「目标」栏填写
msedge.exe "https://example.com",然后在Word/Excel里插入指向这个快捷方式的超链接。不过这种方法会多一步打开快捷方式的操作,不如第一种直接。
必要时的VBA批量处理方案
如果你有大量需要切换到Edge打开的超链接,手动修改太浪费时间,可以用VBA批量处理:
批量修改超链接地址(Word/Excel通用思路)
- 打开对应的Office文档,按
Alt + F11打开VBA编辑器。 - 右键左侧项目浏览器里的文档/工作簿,选择「插入」→「模块」。
- 根据你的Office程序,粘贴对应的代码:
Word版本代码
Sub ConvertLinksToEdge_Word() Dim hl As Hyperlink Dim targetDomain As String ' 替换成你需要适配的网站域名,比如"example.com" targetDomain = "example.com" For Each hl In ActiveDocument.Hyperlinks ' 检查超链接是否包含目标域名 If InStr(hl.Address, targetDomain) > 0 Then ' 转换为Edge专属URI格式 hl.Address = "microsoft-edge:" & hl.Address End If Next hl MsgBox "指定超链接已批量修改为Edge打开!", vbInformation End Sub
Excel版本代码
Sub ConvertLinksToEdge_Excel() Dim hl As Hyperlink Dim targetDomain As String targetDomain = "example.com" ' 替换成目标域名 For Each hl In ActiveSheet.Hyperlinks If InStr(hl.Address, targetDomain) > 0 Then hl.Address = "microsoft-edge:" & hl.Address End If Next hl MsgBox "指定超链接已批量修改为Edge打开!", vbInformation End Sub
- 修改代码里的
targetDomain为你需要切换到Edge的网站域名,然后运行宏就可以批量完成修改了。
拦截点击事件(保持原地址不变)
如果你不想修改超链接的原始地址,而是希望点击时自动用Edge打开指定网站,可以用事件拦截的VBA代码:
- Word:把代码放在
ThisDocument模块中
Private Sub Document_FollowHyperlink(ByVal Target As Hyperlink) Dim targetDomain As String targetDomain = "example.com" If InStr(Target.Address, targetDomain) > 0 Then ' 取消默认的浏览器打开行为 Cancel = True ' 调用Edge打开目标网址 Shell "msedge.exe """ & Target.Address & """", vbNormalFocus End If End Sub
- Excel:把代码放在
ThisWorkbook模块中
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Dim targetDomain As String targetDomain = "example.com" If InStr(Target.Address, targetDomain) > 0 Then Cancel = True Shell "msedge.exe """ & Target.Address & """", vbNormalFocus End If End Sub
备注:内容来源于stack exchange,提问作者NewSites
相关产品推荐
相关产品推荐

