我在工作簿的Module1
中定义了一个如下所示的函数:
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!
...直到我打开另一个工作簿,此时神奇地显示了该值。
如何强制电子表格从其他工作簿中获取值,即使它未打开?
答案 0 :(得分:1)
指定已关闭的Excel工作簿的完整路径应该可以解决问题。
而不是
=Header('[OtherWorkbook.xlsx]Sheet1'!C34)
尝试
=Header('C:\Users\your_username\Desktop\[OtherWorkbook.xlsx]Sheet1'!C34)
将已关闭的工作簿的路径替换为上面的路径。
答案 1 :(得分:0)
所以答案是:它无法完成。要获取值,需要打开工作簿。
有一个替代方案,由@omegastripes提供,但看起来相当复杂:
How can I pick values from an Excel workbook and return them by function on active workbook