使用 Excel 2013 中另一個工作簿的範圍更新 SUMIFS 公式時出現 #value 錯誤

使用 Excel 2013 中另一個工作簿的範圍更新 SUMIFS 公式時出現 #value 錯誤

我在本地資料夾上有一個來源文件,其中包含帶有鍵值對的兩個清單和一個使用來源資料的目標文件,如下所示:

  1. 連結到特定單元格:

    ='C:\Temp[source.xlsx]Sheet1'!$B1

  2. 查詢某個範圍內的值:

    =VLOOKUP(A1,'C:\Temp[source.xlsx]Sheet1'!$A$1:$B$6,2,0)

  3. 具有範圍和條件的 SUMIFS 函數:

    =SUMIFS('C:\Temp[source.xlsx]Sheet1'!$B$1:$B$6,'C:\Temp[source.xlsx]Sheet1'!$A$1:$A$6,D1)

在開啟目標工作簿而不開啟來源工作簿時,我收到「此工作簿包含指向...的連結」訊息,並帶有「更新」和「不更新」選項。在此提示的背景中,我可以看到關閉文件時保存的值。

如果原始檔案保持關閉狀態並且我選擇「更新」選項,我會獲得連結 (1) 和查詢 (2) 的正確值,但是#價值!SUMIFS (3) 的錯誤。如果我現在打開原始文件,則 SUMIFS 值將被正確計算。

請注意,在沒有開啟來源檔案的情況下,在「編輯連結」對話方塊(來自資料資料夾)中,我首先得到來源檔案的「未知」狀態,然後在按一下「檢查狀態」後取得「確定”,並且在之後仍然是#VALUE我點擊“更新值”

這是我用於與工作相關的情況的測試案例:一個具有 SUMIFS 函數的文件,其參數指向來源文件,當提示更新/不更新時顯示正確的值,但更改為 #VALUE!無論我選擇哪個選項(更新或不更新)都會出錯

明顯的問題:為什麼Excel 2013會這樣做以及如何解決?

答案1

Excel 正在依照設計運作。它不允許公式讀取封閉工作簿中的資料。

要解決此限制,您需要使用 VBA 從關閉的檔案中檢索資料。也可以搜尋「excel 2013關閉工作簿資料」尋找其他方法。

這是如何實現它的範例在 Microsoft Excel 中使用 VBA 讀取關閉的工作簿中的信息:

Sub GetDataFromClosedWorkbook()
Dim wb As Workbook
    Application.ScreenUpdating = False ' turn off the screen updating
    Set wb = Workbooks.Open("C:\Foldername\Filename.xls", True, True) 
    ' open the source workbook, read only
    With ThisWorkbook.Worksheets("TargetSheetName")
        ' read data from the source workbook
        .Range("A10").Formula = wb.Worksheets("SourceSheetName").Range("A10").Formula
        .Range("A11").Formula = wb.Worksheets("SourceSheetName").Range("A20").Formula
        .Range("A12").Formula = wb.Worksheets("SourceSheetName").Range("A30").Formula
        .Range("A13").Formula = wb.Worksheets("SourceSheetName").Range("A40").Formula
    End With
    wb.Close False ' close the source workbook without saving any changes
    Set wb = Nothing ' free memory
    Application.ScreenUpdating = True ' turn on the screen updating
End Sub

這是另一個例子 -Excel「拉」功能:建立封閉工作簿的動態鏈接

您必須對此進行試驗以滿足您自己的需求。

相關內容