gpt4 book ai didi

vba - Excel - 链接未使用 VBA 更新

转载 作者:行者123 更新时间:2023-12-03 01:59:48 24 4
gpt4 key购买 nike

我已经广泛地寻找这个问题的答案,但我尝试的任何方法似乎都不起作用。这是我到目前为止所要做的。

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

我目前遇到的问题是这些链接不再正确更新。

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

源文件!NameRef1

因为我不希望人们必须手动一次打开一个文件,所以我编写了一些 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:对象“_Workbook”的方法“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

关于vba - Excel - 链接未使用 VBA 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com