ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用vba代码批量替换工作簿中的指定超链接地址为新地址?

如何用vba代码批量替换工作簿中的指定超链接地址为新地址?

作者:绿色风 分类: 时间:2022-08-17 浏览:136
楼主
kevinchengcw
Q: 如何用vba代码批量替换工作簿中的指定超链接地址为新地址?
A: 代码如下:
  1. Sub test()
  2. Dim OldLK$, NewLK$, LK As Hyperlink, Ask, WS As Worksheet
  3. Retry:   '设定重新输入的跳转位置
  4. OldLK = UCase(InputBox("请输入旧的链接路径:"))    '输入链接位置
  5. NewLK = UCase(InputBox("请输入新的链接路径:"))
  6. If Len(OldLK) = 0 Or Len(NewLK) = 0 Then   '判断位置是否合格(此处仅判断是否输入了数据,还可以加上路径是否存在等功能进一步完善)
  7.     Ask = MsgBox("你输入的数据不合格,是否重新输入?" & vbNewLine & "“是”重新输入,“否”退出程序", vbYesNo, "错误")    '有一个数据为空时提示处理
  8.     If Ask = vbYes Then GoTo Retry   '如果回答为“是”时跳至重新输入的位置
  9.     Exit Sub  '否则退出程序
  10. Else   '当数据合格时执行下述操作
  11.     For Each WS In Worksheets   '循环工作簿各表
  12.         If WS.Hyperlinks.Count > 0 Then   '判断当前循环到的工作表里是否有超链接
  13.             With WS
  14.                 For Each LK In .Hyperlinks   '有超链接则循环各个超链接
  15.                     If UCase(LK.Address) Like OldLK & "*" Then LK.Address = Replace(UCase(LK.Address), OldLK, NewLK)   '判断地址是否匹配,匹配则进行替换操作
  16.                 Next LK
  17.             End With
  18.         End If
  19.     Next WS
  20. End If
  21. MsgBox "更换完成"   '操作完成后给予信息提示
  22. End Sub
2楼
纵鹤擒龙水中月
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap