我已經定義在我的工作簿的Module1
的功能,看起來像這樣:如何修復#VALUE!當UDF引用了另一個工作簿
Function Header(r As Range) As String
For i = 1 To r.Row
If r.Offset(-i, -1).Value = "" Then
Header = r.Offset(-i).Value
Exit For
End If
Next
End Function
,我與一個參考到另一個工作簿的細胞像這樣稱呼它:
=Header('[OtherWorkbook.xlsx]Sheet1'!C34)
和我得到的是#VALUE!
...直到我打開另一個工作簿,此時神奇地出現這個值。
如何強制電子表格從其他工作簿中提取值,即使它不是打開的?
我敢肯定,你不能(或不能至少)得到的數據一個密切的工作簿,所以如果需要的話,你需要測試並打開它(在代碼中),然後關閉它! – R3uK
VBA中的Range對象只能從打開的工作簿中創建。 – Rory
[此方法](http://stackoverflow.com/a/30179303/2165759)允許通過UDF從封閉的工作簿中獲取值。 – omegastripes