运行时错误'1004'应用程序定义的错误或对象定义的错误

时间:2015-11-20 11:21:04

标签: excel vba excel-vba

(我知道必须避免选择,我正在学习并且已经得到了与其他相关问题的帮助) 非常感谢有关如何重新编码以下更加“广泛”的帮助,因为它现在有时会运行,有时甚至不运行。

它现在在第四行停止,并在标题中写入错误消息。 记住: 正如您所看到的,刷新数据库时记录的宏提供了两种不同类型的代码,我想它必须与我的数据库在运行不同的excelversions时被复制?可以用一种方式写吗? 我可以打电话的公共分队?

    Sheets("DB2 Totbel").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets("DB2 Giva").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets("TS4LAGER").Select
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
    Sheets("PIX").Select
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
    'Sheets("PIX").Select
    'Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
    Sheets("OFO data").Select
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

1 个答案:

答案 0 :(得分:1)

是否要刷新Excel文件中的所有查询表? 你可以像这样编码:

Public Sub RefreshAllQueryTables()
    Dim sh As Worksheet
    Dim q As QueryTable
    Dim l As ListObject

    For Each sh In Worksheets

        For Each q In sh.QueryTables
            q.Refresh BackgroundQuery:=False
        Next

        For Each l In sh.ListObjects
            For Each q In sh.QueryTables
                q.Refresh BackgroundQuery:=False
            Next
        Next
    Next
End Sub