簡體   English   中英

Excel-鏈接未使用VBA更新

[英]Excel - Links Not Updating with VBA

我一直在尋找有關此問題的答案,但我嘗試的任何方法似乎都無效。 到目前為止,這是我必須到達的地方。

我有兩個Excel工作簿。 第一個工作簿是人們可以編輯的工作簿。 它包含諸如下拉菜單之類的內容,這些菜單僅在鏈接到源文件時才起作用。 第二個工作簿是源文件。 它包含諸如數據表之類的信息,這些信息顯示在第一個工作簿的下拉菜單列表中。 (例如,醫療狀況清單,例如哮喘,糖尿病等,人們可以從清單中選擇一種狀況。)

我目前遇到的問題是這些鏈接不再正確更新。

為了澄清,如果我先打開源文件然后手動打開輸出文件,它們將更新。 在名稱管理器中,引用將如下所示:

的SourceFile!NameRef1

因為我不希望人們必須一次手動打開一個文件,所以我寫了一些VBA,該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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM