Excel中批量将文本内带括号URL转为可点击超链接的方法
解决Excel中嵌在文本内的括号链接转为可点击超链接的方案
嘿,我之前也碰到过一模一样的情况!Excel自带的自动更正根本搞不定这种藏在文本里的括号式URL,用VBA宏绝对是最高效的解决办法,给你一步步来操作:
第一步:打开VBA编辑器
直接按Alt + F11就能调出VBA编辑器,或者右键工作表标签,选「查看代码」也行。第二步:插入模块并粘贴宏代码
在左侧的工程窗口里右键你的工作簿,选「插入」→「模块」,然后把下面的代码粘贴进去:
Sub ConvertBracketedURLsToHyperlinks() Dim cell As Range Dim regex As Object Dim matches As Object Dim match As Object Dim url As String Dim i As Integer ' 初始化正则表达式,匹配(http://xxx)或(https://xxx)格式 Set regex = CreateObject("VBScript.RegExp") regex.Global = True regex.Pattern = "\((https?://[^\)]+)\)" ' 遍历你选中的单元格(建议先选好要处理的区域再运行宏) For Each cell In Selection If cell.Value <> "" Then Set matches = regex.Execute(cell.Value) ' 反向遍历匹配结果,避免替换时位置偏移 For i = matches.Count - 1 To 0 Step -1 Set match = matches(i) url = Mid(match.Value, 2, Len(match.Value) - 2) ' 去掉前后的括号 ' 给匹配到的文本添加超链接,保留原括号显示 cell.Hyperlinks.Add Anchor:=cell.Characters(match.FirstIndex + 1, match.Length), _ Address:=url, _ TextToDisplay:=match.Value Next i End If Next cell Set regex = Nothing MsgBox "所有括号内的URL已转为可点击超链接!", vbInformation End Sub
- 第三步:运行宏完成转换
回到Excel界面,选中你需要处理的Info列区域(或者整个表格里的目标单元格),按Alt + F8调出宏对话框,选中ConvertBracketedURLsToHyperlinks,点击「执行」就搞定了!
额外说明
这个宏用正则表达式精准识别文本里的(http://xxx)或(https://xxx)格式,只会处理以http/https开头的括号内容,不会误碰其他带括号的文本。比如你给出的示例单元格内容:
此单元格内容为关于Google的信息(http://www.google.com),来源于Wikipedia(http://en.wikipedia.org)
处理后两个括号里的链接都会变成可点击的超链接,原文本的格式完全保留,完美符合你的需求。
内容的提问来源于stack exchange,提问作者Cap
相关产品推荐
相关产品推荐

