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