Excel-链接不使用VBA更新

Excel-链接不使用VBA更新,vba,excel,Vba,Excel,我已经到处寻找这个问题的答案,但我所尝试的似乎都不管用。到目前为止,这就是我要做的 我有两本Excel工作簿。第一个工作簿是人们可以编辑的工作簿。它包含下拉菜单等功能,只有链接到源文件时才起作用。第二个工作簿是源文件。它包含诸如数据表之类的信息,这些信息显示在第一个工作簿的下拉菜单列表中。(例如,医疗条件列表,如哮喘、糖尿病等,人们可以从列表中选择一种条件。) 我现在遇到的问题是,这些链接不再正确更新 为了澄清,如果我手动打开源文件,然后打开输出文件,它们将更新。在名称管理器中,引用将如下所示:

我已经到处寻找这个问题的答案,但我所尝试的似乎都不管用。到目前为止,这就是我要做的

我有两本Excel工作簿。第一个工作簿是人们可以编辑的工作簿。它包含下拉菜单等功能,只有链接到源文件时才起作用。第二个工作簿是源文件。它包含诸如数据表之类的信息,这些信息显示在第一个工作簿的下拉菜单列表中。(例如,医疗条件列表,如哮喘、糖尿病等,人们可以从列表中选择一种条件。)

我现在遇到的问题是,这些链接不再正确更新

为了澄清,如果我手动打开源文件,然后打开输出文件,它们将更新。在名称管理器中,引用将如下所示:

Private Sub Workbook_Open()
Set book =     Workbooks.Open("C:\Users\user_000\Desktop\ExampleFolder\SourceFile.xlsm")
End Sub
源文件!名称参考1

因为我不希望人们一次只能手动打开一个文件,所以我编写了一些VBA,它可以在您打开输出文件时自动打开源文件

Dim app As New Excel.Application
Dim book As Excel.Workbook
Private Sub Workbook_Open()
app.Visible = True
Set book = app.Workbooks.Open("C:\Users\user_000\Desktop\ExampleFolder\SourceFile.xlsm")
End Sub
它工作正常,但是链接不会更新,尽管它们被设置为自动更新。此时,当我进入名称管理器时,链接现在已更改为整个文件路径。出于某种原因,每次它这样做(例如,当我将文件移动到另一个位置时),它都会停止更新链接

我不明白为什么Excel不喜欢您在名称管理器中使用文件路径作为链接。当我只引用文件名时,它总是有效的。我已经尝试了在VBA中所能想到的一切,我已经更改了宏安全设置以启用几乎所有内容,但这没有什么区别

我试过:

ThisWorkbook.UpdateLink

但我得到的只是运行时错误1004:对象“\u工作簿”的方法“UpdateLink”失败。

这是一个非常容易修复的错误

您编写的代码将启动一个新的Excel实例

Dim app As New Excel.Application
在这种情况下,您将在源工作簿中打开数据。输出文件中的excel组合框将无法从此输出工作簿中拾取数据,除非它在同一excel实例中打开

因此,只需将代码更改为如下内容:

Private Sub Workbook_Open()
Set book =     Workbooks.Open("C:\Users\user_000\Desktop\ExampleFolder\SourceFile.xlsm")
End Sub