簡體   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