[英]Find URL in cell/string with Excel VBA
我有一个单元格/字符串,其中包含各种信息,包括RAW http://链接。
我想找到一种方法来提取这些RAW URL并将它们转换为HTML链接(等等不是Excel中的可点击链接)。 见下面的例子:
Source: This is a sample link: http://www.bbc.co.uk Please visit.
Output: This is a sample link: <a href="http://www.bbc.co.uk">http://www.bbc.co.uk</a> Please visit.
我已经涉足了替换功能,但这似乎没有给我所需的结果。
任何帮助赞赏。
如果您的输入位于A1中,请将其放在A2中以获取已清理的链接:
=TRIM(SUBSTITUTE(SUBSTITUTE(A1,"This is a sample link: ","")," Please visit.",""))
使用A2中的清理链接:
="This is a sample link: <a href="""&A2&""">"&A2&"</a> Please visit."
或者两者结合(在A1中输入):
="This is a sample link: <a href="""&TRIM(SUBSTITUTE(SUBSTITUTE(A1,"This is a sample link: ","")," Please visit.",""))&""">"&TRIM(SUBSTITUTE(SUBSTITUTE(A1,"This is a sample link: ","")," Please visit.",""))&"</a> Please visit."
这是一个将取代的UDF。 并且还应该在同一个字符串中使用多个URL。 IT使用正则表达式引擎来完成工作,并找到具有各种协议的URL(例如http,https,ftp,File)
此外,如果链接是句子的一部分,则结尾处的标点符号(例如句点,逗号等)将不包含在html标记内。
Option Explicit
Function LinkToHTML(S As String) As String
Dim RE As Object
Const sPat As String = "\b(https?|ftps?|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]"
Const sRepl As String = "<a href=""$&"">$&</a>"
Set RE = CreateObject("vbscript.regexp")
With RE
.Global = True
.Pattern = sPat
.ignorecase = True
LinkToHTML = .Replace(S, sRepl)
End With
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.