VBA生成带超链接的PDF:如何让超链接在新标签页打开?
解决PDF中超链接在新标签页打开的问题
嗨,刚好之前碰到过类似的需求,其实只需要给你的超链接地址做个小包装,就能实现点击PDF里的链接在新标签页打开的效果,完全不用大改现有代码~
原理说明
PDF支持嵌入JavaScript的超链接,我们可以利用window.open()方法,把原URL包裹成一段简单的JS代码,让浏览器触发“在新标签页打开”的行为。
修改后的代码
把你原来创建超链接的代码,调整Address参数即可:
.Hyperlinks.Add Anchor:=rFind, _ Address:="javascript:window.open('" & r.Offset(, 1).Value & "', '_blank')", _ SubAddress:="", _ ScreenTip:=r.Offset(, 1).Text, _ TextToDisplay:=r.Value
额外注意事项
如果你的Google Classroom URL里意外包含单引号(虽然大概率不会),为了避免JavaScript语法错误,可以先对URL做转义处理:
Dim safeUrl As String safeUrl = Replace(r.Offset(, 1).Value, "'", "''") ' 把单引号替换成双单引号,规避语法问题 .Hyperlinks.Add Anchor:=rFind, _ Address:="javascript:window.open('" & safeUrl & "', '_blank')", _ SubAddress:="", _ ScreenTip:=r.Offset(, 1).Text, _ TextToDisplay:=r.Value
测试步骤
- 用修改后的代码重新生成带超链接的Excel文件
- 导出为PDF
- 点击PDF中的链接,就能在新标签页打开Google Classroom页面,再也不会丢失时间表啦!
内容的提问来源于stack exchange,提问作者McKee118
相关产品推荐
相关产品推荐

