![使用 Excel 2013 中另一個工作簿的範圍更新 SUMIFS 公式時出現 #value 錯誤](https://rvso.com/image/1421879/%E4%BD%BF%E7%94%A8%20Excel%202013%20%E4%B8%AD%E5%8F%A6%E4%B8%80%E5%80%8B%E5%B7%A5%E4%BD%9C%E7%B0%BF%E7%9A%84%E7%AF%84%E5%9C%8D%E6%9B%B4%E6%96%B0%20SUMIFS%20%E5%85%AC%E5%BC%8F%E6%99%82%E5%87%BA%E7%8F%BE%20%23value%20%E9%8C%AF%E8%AA%A4.png)
我在本地資料夾上有一個來源文件,其中包含帶有鍵值對的兩個清單和一個使用來源資料的目標文件,如下所示:
連結到特定單元格:
='C:\Temp[source.xlsx]Sheet1'!$B1
查詢某個範圍內的值:
=VLOOKUP(A1,'C:\Temp[source.xlsx]Sheet1'!$A$1:$B$6,2,0)
具有範圍和條件的 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「拉」功能:建立封閉工作簿的動態鏈接。
您必須對此進行試驗以滿足您自己的需求。