首页 > 解决方案 > 使用VBA一一刷新我的工作簿的查询 - Excel 2016

问题描述

当我尝试从我的工作簿刷新一些查询时,由于某些原因,我收到此错误:

索引不属于选择(执行错误9)

我开始使用这个:

    For Month=1 To 12 Step 1
      ThisWorkbook.Connections("Query - Tmp" & Month).OLEDBConnection.Refresh
    Next Month

我有 12 个查询 ( Tmp1 / Tmp2 / ...) 用于 12 张纸(每个月一张)。

我已经尝试过使用:

不工作

    ThisWorkbook.ActiveSheet.QueryTables.Count 
    '(Result: QueryTables.Count = 0) 

或者 :

    ThisWorkbook.Connections("Query - Tmp1").OLEDBConnection.Refresh
    '(Result: same error message)

在职的

    ThisWorkbook.RefreshAll
    '(all my queries are refreshed)

标签: excelvba

解决方案


您必须使用索引而不是连接名称。

请参阅https://docs.microsoft.com/fr-fr/office/vba/api/excel.workbook.connections

您可以使用“名称”属性获取连接名称。

所以,这样的事情应该没问题:

For i=0 To NbConnections-1
  If ThisWorkBook.Connections(i).Name = "Query - Tmp" & Month Then
      ThisWorkbook.Connections(i).OLEDBConnection.Refresh
  End If
Next  i

推荐阅读