2010-05-20 79 views
2

我們正在管理Web系統中的一些系統錯誤,併爲電子表格中的可執行文件設置優先級。 每張票都有一個「FD-」和四個數字作爲ID。 網絡系統有一個鏈接末尾有「FD - ####」的超鏈接。 最終結果將如下所示 - http://www.mytickets.com/FD-####Excel宏在單元格中查找文本並在單元格中插入超鏈接

我想運行一個宏,它可以找到所有的FD - ####並在每個FD上插入一個超鏈接。

單個單元格中可能有多個FD - ####,並且肯定會有其他文本。

我會通過每個並添加鏈接,但有超過150個左右。

謝謝!

+1

它甚至有可能有多個超鏈接在Excel單元格?當我選擇一個單元格的內容的一部分時,我可以使它變爲粗體/斜體/等,但超鏈接按鈕變灰了...我錯過了什麼嗎? – psmears 2010-05-20 16:39:44

+0

嗯......你說得對。我們必須想出另一種方式。添加您的評論作爲答案,我會檢查它。 – tnriverfish 2010-05-20 17:21:54

回答

2

正如在評論中提到的,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 
+0

您需要將模式更改爲僅用於FD - ####(4位數)的子模式。 – 2010-05-20 17:35:30

+0

謝謝,蘭斯。更新的代碼。 – bernie 2010-05-20 17:49:26

相關問題