对象不支持QueryTables.Refresh

时间:2017-12-14 11:50:09

标签: vba runtime

我收到运行时错误'''对象在以下代码中不支持此属性:

           Dim WS1 As Worksheet
           Dim WS2 As Worksheet


          With ThisWorkbook
            Set WS1 = .Worksheets("A")
            Set WS2 = .Worksheets("B")
          End With

          With WS1.ListObjects
              .QueryTables.Refresh BackgroundQuery:=False 
          End With

         With WS2.ListObjects
            .QueryTables.Refresh BackgroundQuery:=False
         End With

我有点不知所措,我哪里错了?

1 个答案:

答案 0 :(得分:1)

Refresh方法适用于QueryTable对象,而不适用于集合。

如果每个工作表只有一个ListObject,或者它只是感兴趣的第一个ListObject(对于每个工作表),那么:

With WS1.ListObjects(1)
    .QueryTable.Refresh BackgroundQuery:=False 
End With

With WS2.ListObjects(1)
  .QueryTable.Refresh BackgroundQuery:=False
End With

也就是说,ListObject只有一个QueryTable,您可以刷新。

如果工作表有多个ListObject,那么你需要迭代它们的集合来刷新每个QueryTable。

相关问题