ChangeLink方法的局限性?

时间:2016-08-12 12:42:33

标签: vba excel-vba excel

我想出了一些代码来自动更新链接以满足我的某些需求 我的文件夹的层次结构是:
- 父文件的父文件夹
 -SubFolder 1,文件1  -SubFolder 2,文件2.1文件2.2 ...

主文件调用主宏并打开链接到父文件和文件的所有文件2.x 1.我的代码是

Private Sub Workbook_Open()
Application.DisplayAlerts = False

oldlinks = ThisWorkbook.LinkSources(xlExcelLinks)

For i = 1 To UBound(oldlinks)
    Filename = Right(oldlinks(i), Len(oldlinks(i)) - InStrRev(oldlinks(i), "\"))

    If Filename = "file1" Then
        newlink = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1) & "\SubFolder1\" & Filename
    ElseIf Filename = "ParentFile" Then
        newlink = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1) & "\" & Filename
    End If

    If newlink <> oldlinks(i) Then
        ThisWorkbook.ChangeLink Name:=oldlinks(i), NewName:=newlink, Type:=xlExcelLinks
    End If
Next i

Application.DisplayAlerts = True
End Sub

这似乎起作用,今天我偶然发现错误1004在线

ThisWorkbook.ChangeLink Name:=oldlinks(i), NewName:=newlink, Type:=xlExcelLinks

在我看来,它可能不起作用,因为父文件的根比以前更长,我测试了它:它仍然有效,如果路径字符串的长度(我得到左(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path,&#34; \&#34;) - 1))更短。

我无法在here中找到任何提及这种限制的内容。有没有人遇到过它?

提前致谢

0 个答案:

没有答案