由于我正在使用的工作簿的设置方式,其中创建了许多不同的连接,但只有一个连接有效。有效连接将是唯一具有刷新日期的连接,因此我尝试使用 Excel 宏设置空检查来查找此连接。到目前为止我的代码是:
For Each c2 In ActiveWorkbook.Connections
If Not IsNull(c2.ODBCConnection.RefreshDate) Then
Blah Blah
End If
在空检查时,我遇到运行时错误“1004”;应用程序定义或对象定义的错误。我想知道这是否与缺少引用文献有关?或者可能是其他东西。
任何帮助将不胜感激! 谢谢!
最佳答案
我认为这是由于 Date
类型没有干净的 null 值引起的。相反,当您尝试访问它时,MS 会抛出错误。
处理此问题的一种方法是将值检索到变量中,但将该检索包装在错误处理程序 block 中:
Dim d As Date
For Each c2 In ActiveWorkbook.Connections
On Error Resume Next
d = c2.OLEDBConnection.RefreshDate
If Err = 1004 Then
MsgBox "No date"
ElseIf Err <> 0 Then
MsgBox "Unknown error (" & Err.Number & "): " & Err.Description
Else
MsgBox CStr(d)
End If
On Error GoTo 0
Next
On Error Resume Next
表示以下代码不应因错误而中断; On Error Goto 0
表示应恢复正常(系统)错误处理。
关于使用 ODBCConnection.RefreshDate 的 VBA 结果出现错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665139/