繁体   English   中英

使用Excel VBA在单元格/字符串中查找URL

[英]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.

我已经涉足了替换功能,但这似乎没有给我所需的结果。

任何帮助赞赏。

哦-key-doh-key ...所以你' ......寻找从哪里开始的指针。 ”。 这是一个开始:

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

现在,您可以使用相同的函数和方法来优化它,以将URL去除到锚元素中。

在此输入图像描述

如果您的输入位于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM