使用vbscript替换excel中的部分超链接

时间:2018-04-24 00:11:21

标签: excel excel-vba vba

我有一行有数百个超链接指向一个稍微改变的路径。有人可以帮我在excel中创建一个vbscript。我找到了一些代码但是效果不好。有一些条件我必须考虑到一些链接是正确的,不需要编辑,有些我只需要编辑一点。这是三行的示例。

\\US.MyCompany.net\Main_Folder\DATA\Sub_folder\a\file1.pdf
\\US.MyCompany.net\Main_Folder\DATA\Sub_folder\b\file1.pdf
\\US.MyCompany.net\Main_Folder\DATA\Sub_folder\c\file1.pdf

我基本上需要编辑当前路径并在DATA之后添加名为NewFolder的文件夹,因此它看起来如下所示。

\\US.MyCompany.net\Main_Folder\DATA\NewFolder\Sub_folder\a\file1.pdf
\\US.MyCompany.net\Main_Folder\DATA\NewFolder\Sub_folder\b\file1.pdf
\\US.MyCompany.net\Main_Folder\DATA\NewFolder\Sub_folder\c\file1.pdf

我到目前为止所获得的代码只能用于确切的搜索含义,即使它存在也会添加Newfolder,它不会跳过它。

当我运行代码时,它会继续添加Newfolder,即使它存在。

Sub ReplaceHyperlinkAdresses()
Dim hypLink As Hyperlink
Dim ws As Worksheet

For Each ws In Worksheets
For Each hypLink In ws.Hyperlinks
If hypLink.Address Like "\\US.MyCompany.net\Main_Folder\DATA*" Then
hypLink.Address =Replace
(hypLink.Address, "\\US.MyCompany.net\Main_Folder\DATA",
"\\US.MyCompany.net\Main_Folder\DATA\NewFolder")
End If
Next hypLink
Next ws
End Sub

1 个答案:

答案 0 :(得分:0)

Sub ReplaceHyperlinkAdresses()
Dim hypLink As Hyperlink
Dim ws As Worksheet

For Each ws In Worksheets
    For Each hypLink In ws.Hyperlinks
        If hypLink.Address Like "\\US.MyCompany.net\Main_Folder\DATA*" AND _
           Not hypLink.Address Like "\\US.MyCompany.net\Main_Folder\DATA\NewFolder*"Then
            hypLink.Address =Replace(hypLink.Address, _
                             "\\US.MyCompany.net\Main_Folder\DATA", _
                             "\\US.MyCompany.net\Main_Folder\DATA\NewFolder")
        End If
    Next hypLink
Next ws
End Sub