Excel 2016宏编辑超链接

时间:2018-04-17 19:46:38

标签: excel excel-vba hyperlink vba

目前,我需要将数百个超链接单元格更改为正在使用的新格式。

以前我们会举例如" https://oldServer:oldPort/project_code/Some_File" 我们现在正转向 " https://newServer:newPort/project_code/Some_File&#34 ;.

我只希望能够更改" oldServer:oldPort" to" newServer:newPort"而不更改超链接的其余部分。

我知道excel宏将是最简单的解决方案,但我没有经验可以创建一个。

2 个答案:

答案 0 :(得分:1)

您想要遍历每张表中的每个超链接对象。

代码这样的东西应该有效。 (确保在测试之前进行备份,因为我无法测试您的实际数据!)

另外,请注意,这会更改链接,但不会更改显示的文本,因为我不确定其中包含的内容。通过更新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

答案 1 :(得分:0)

我从包含旧服务器信息的列中删除了超链接。然后我创建了几个新列。我在第一个新列中键入了新服务器的完整路径并将其填满。在另一个新专栏中,我创建了一个公式来连接完整路径和友好名称(恰好是最初命名的链接)。这创建了新的服务器路径以及文件名。我复制/粘贴了此列的值,并删除了我创建的第一个新列的内容。然后,我使用HYPERLINK公式将超链接和友好名称重新组合在一起。这听起来比以前更复杂 - 我在这里写下来比在Excel电子表格中实际做的更长。我希望这是有道理的。

相关问题