【发布时间】:2015-03-18 16:31:27
【问题描述】:
我有一个小的 Excel 2010 查询超时(没有响应)然后得到错误Run time error 1004 general odbc error
当我调试时,它会突出显示这一行:
Selection.QueryTable.Refresh BackgroundQuery:=False
这在 Excel 2007 中有效。
我尝试On Error Resume Next 让查询跳过任何错误并移至下一部分,但这没有帮助。
Sub Refresh_all()
Application.ScreenUpdating = False
Application.Goto Reference:="querycell"
Range("A2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Dim pt As PivotTable
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
Application.Goto Reference:="returncell"
Range("A1").Select
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
您在哪一行收到错误消息?
-
@Gareth 会尝试让它再次出错,但大多数情况下它只是超时(excel 没有响应)。 2010年有什么不兼容的语法吗?
-
即使删除
On Error Resume Next语句,它是否仍然超时?除此之外,您确定要引用ActiveWorkbook而不是ThisWorkbook? -
@Gareth 删除 On Error Resume Next 并将其更改为 THIS,现在我得到运行时错误 1004 一般 odbc 错误,当我单击调试时,它突出显示这一行 Selection.QueryTable.Refresh BackgroundQuery:=False
标签: excel excel-2010 vba