正如在評論中提到的,Excel似乎並不支持單元格中的多個超鏈接。
下面的代碼會做更換門票鏈接:
Option Explicit
Sub loop_over_cells()
Dim a_cell
Dim replaced As String
For Each a_cell In ActiveSheet.UsedRange
Debug.Print "old value " & a_cell.Value
replaced = RegexReplace(a_cell.Value, "(fd-\d{4}\b)", "=hyperlink(" & Chr(34) & "http://cnn.com/$1" & Chr(34) & ")")
a_cell.Value = replaced
Debug.Print "new value " & a_cell.Value
Next
End Sub
Function RegexReplace(search_string, ptrn, rplc)
Dim regEx
Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = ptrn
regEx.IgnoreCase = True
regEx.Global = True
RegexReplace = regEx.replace(search_string, rplc)
End Function
它甚至有可能有多個超鏈接在Excel單元格?當我選擇一個單元格的內容的一部分時,我可以使它變爲粗體/斜體/等,但超鏈接按鈕變灰了...我錯過了什麼嗎? – psmears 2010-05-20 16:39:44
嗯......你說得對。我們必須想出另一種方式。添加您的評論作爲答案,我會檢查它。 – tnriverfish 2010-05-20 17:21:54