作者:绿色风
分类:
时间:2022-08-17
浏览:136
楼主 kevinchengcw |
Q: 如何用vba代码批量替换工作簿中的指定超链接地址为新地址? A: 代码如下:
- Sub test()
- Dim OldLK$, NewLK$, LK As Hyperlink, Ask, WS As Worksheet
- Retry: '设定重新输入的跳转位置
- OldLK = UCase(InputBox("请输入旧的链接路径:")) '输入链接位置
- NewLK = UCase(InputBox("请输入新的链接路径:"))
- If Len(OldLK) = 0 Or Len(NewLK) = 0 Then '判断位置是否合格(此处仅判断是否输入了数据,还可以加上路径是否存在等功能进一步完善)
- Ask = MsgBox("你输入的数据不合格,是否重新输入?" & vbNewLine & "“是”重新输入,“否”退出程序", vbYesNo, "错误") '有一个数据为空时提示处理
- If Ask = vbYes Then GoTo Retry '如果回答为“是”时跳至重新输入的位置
- Exit Sub '否则退出程序
- Else '当数据合格时执行下述操作
- For Each WS In Worksheets '循环工作簿各表
- If WS.Hyperlinks.Count > 0 Then '判断当前循环到的工作表里是否有超链接
- With WS
- For Each LK In .Hyperlinks '有超链接则循环各个超链接
- If UCase(LK.Address) Like OldLK & "*" Then LK.Address = Replace(UCase(LK.Address), OldLK, NewLK) '判断地址是否匹配,匹配则进行替换操作
- Next LK
- End With
- End If
- Next WS
- End If
- MsgBox "更换完成" '操作完成后给予信息提示
- End Sub
|
2楼 纵鹤擒龙水中月 |
学习了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一