簡體   English   中英

Excel 2016宏來編輯超鏈接

[英]Excel 2016 Macro to edit Hyperlink

當前,我需要將超鏈接的數百個單元格更改為正在使用的新格式。

以前,例如,我們會有“ https:// oldServer:oldPort / project_code / Some_File ”,現在我們要移至“ https:// newServer:newPort / project_code / Some_File ”。

我只希望能夠將“ oldServer:oldPort”更改為“ newServer:newPort”,而不更改其余的超鏈接。

我知道一個excel宏將是最簡單的解決方案,但是我沒有創建一個宏的經驗。

您想遍歷每個工作表中的每個超鏈接對象。

代碼這樣的事情應該工作。 (請確保在測試之前先備份,因為我無法測試您的實際數據!)

另外,請注意,這會更改鏈接,但不會更改顯示的文本,因為我不確定其中的內容。 可以通過更新TextToDisplay或使用“查找和替換”以相同的過程更改文本。

編輯:(添加了對每個更改的確認。)

Sub changeLinks()

    Const oldPrefix = "https://oldServer:oldPort/"
    Const newPrefix = "https://newServer:newPort/"
    Dim h As Hyperlink, oldLink As String, newLink As String

    For Each h In ActiveSheet.Hyperlinks
        'this will change Address but not TextToDisplay
        oldLink = h.Address
        Debug.Print "Found link: " & oldLink
        If Left(oldLink, Len(oldPrefix)) = oldPrefix Then
                newLink = newPrefix & Right(h.Address, Len(h.Address) - Len(oldPrefix))

                If MsgBox("Click OK to change:" & vbLf & vbLf & oldLink & _
                    vbLf & vbLf & "to" & vbLf & vbLf & newLink, vbOKCancel, _
                    "Confirmation?") <> vbOK Then Exit Sub

                h.Address = newLink
                Debug.Print "  Changed to " & h.Address
        End If
    Next h

End Sub

我從包含舊服務器信息的列中刪除了超鏈接。 然后,我創建了兩個新列。 我在前幾列中輸入了到新服務器的完整路徑,並將其填滿。 在另一個新的專欄中,我創建了一個公式來連接完整路徑和友好名稱(恰好是鏈接最初的名稱)。 這將創建新的服務器路徑以及文件名。 我復制/粘貼了此列的值,並刪除了我創建的第一個新列的內容。 然后,我使用HYPERLINK公式將超鏈接和友好名稱重新組合在一起。 聽起來比以前更令人費解-在這里寫下它比在Excel電子表格中實際完成花費了更多時間。 我希望這是有道理的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM