|
有些关联文件经常需要同时拷贝到不同位置不同电脑,当A文件有公式 引用B文件数据时,经常会出错,出现找不到源文件等问题。
这里采用VBA方法实现 相对引用路径 / 外部文件相对应用 /公式相对引用 给大家分享。
下面说一下 A和B在同一文件夹的情况,其它情况只需要稍微调整即可。
Private Sub Workbook_open()
Dim n As Integer
n = 1
For n = 1 To UBound(ActiveWorkbook.LinkSources(xlExcelLinks))
Link_Old = ActiveWorkbook.LinkSources(xlExcelLinks)(n) '数据链接库中第n条引用文件位置(包括路径和文件名)
If Link_Old = "" Then Exit Sub
Str1 = Split(Link_Old, "\")
F_name = Str1(UBound(Str1))
Link_New = ActiveWorkbook.Path & "\" & F_name '引用位置变更为当前文件夹(包括路径和文件名)
If Link_Old <> Link_New Then '判断Link_Old是否在当前文件夹
Set myfile = CreateObject("Scripting.FileSystemObject")
If myfile.fileExists(Link_New) Then '判断Link_New是否存在,如果存在就更新数据链接库第n条引用文件为当前文件夹同名文件
ActiveWorkbook.ChangeLink Link_Old, Link_New, xlExcelLinks '更新数据引用文件为当前文件夹同名文件
End If
End If
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources(xlExcelLinks)(n)
Next
End Sub
打开VBA窗口,复制以上代码 粘贴到 ThisWorkbook中。
补充内容 (2014-12-1 17:16):
以上VBA可以实现:
1.不打开引用外部表格更新当前excel文件公式,
2.以上VBA,只要外部引用文件在同一文件夹,一起随便拷贝到什么位置都可以实现引用。
3.小改动就可以实现相对/绝对引用。 |
评分
-
1
查看全部评分
-
|