使用Excel VBA查找单元格/string中的URL

我有一个单元格/string,其中包含各种信息,包括RAW http://链接。

我想要find一种方法来提取这些RAW URLS并将其转换成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. 

我已经涉足replacefunction,但这似乎并没有给我所需的结果。

任何帮助赞赏。

这是一个UDF,将取代。 还应该使用同一个string中的多个URL。 IT使用正则expression式引擎来完成这项工作,并且会使用各种协议(例如http,https,ftp,File)来查找URL。

另外,如果链接是句子的一部分,最后的标点符号(如句点,逗号等)将不会包含在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 

在这里输入图像说明

哦 – 键 – 键 – 所以你是' …寻找指针从哪里开始。 ”。 这是一个开始:

 =SUBSTITUTE(REPLACE(A2, FIND(" ", A2, FIND("http", A2)), 1, """>"), " http", "<a href=""http")&"</a>" 

现在,您可以使用相同的函数和方法来细化URL到锚点元素中。

在这里输入图像描述

如果您的input在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." 

或者两者结合(在A1input):

 ="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."