首先:我正在使用Excel 2007,但代码也必须适用于Excel 2003。Excel VBA无法打开工作簿
我的问题如下:我需要访问不同工作簿中的单元格,这可能会被关闭。下面的代码可以在整个网络上找到:
Function Foo()
Dim cell As Range
Dim wbk As Workbook
Set wbk = Workbooks.Open("correct absolute path")
' wbk is Nothing here so the next statement fails.
Set cell = wbk.Worksheets("Sheet1").Range("A1")
Foo = cell.Value
wbk.Close
End Function
可悲的是,WBK是开放的语句之后没有什么(我很乐意提供更好的错误消息,但不知道我怎么会做什么;什么我会给一个真正的IDE和一个有用的语言:/)。绝对路径是正确的并且指向一个有效的excel xlsx文件。
另外我假设这样做的最好方法是“缓存”工作簿,而不是每次调用函数时打开/关闭它?任何可能出现的问题(除了在工作簿已经打开时必须处理这种情况)?
图像,同时通过加强:
您不会收到错误消息,并且“Open”语句只返回Nothing?我试过重试你的问题失败了。你将不得不给我们更多的细节和上下文。 –
@ Jean-FrançoisCorbett要说“不”,错误信息就是说,excel只是继续执行。我看了一下,但找不到任何'GetLastError()'或类似的'On Error Goto'没有指定任何异常对象?引用的东西基本上是整个功能,但我将其改为完整的功能,可能有帮助。 – Voo
立即窗口中的“?Err.Number”和“?Err.Description”将为您提供有关运行时错误的信息。您需要为On Error Goto提供错误处理程序。当你说“下一个语句失败”时,你的意思是你在那里得到一个运行时错误?如果是这样,什么?如果不是,Cell是否也等于没有?您是否尝试过一个非常简单的路径,例如,“我的文档”中的文件? –