Excel VBA 运行时错误 1004 - ThisWorkbook.Connections

Excel VBA runtime error 1004 - ThisWorkbook.Connections

我有一个电子表格,其中包含对名为“CHECKMATE”的 ODBC 连接的多个查询。在 VBA“ThisWorkbook”对象中,我有以下 VBA:

Private Sub Workbook_Open()
Dim TheConnectionName As String
For Each objWBConnect In ThisWorkbook.Connections
TheConnectionName = objWBConnect.Name
ThisWorkbook.Connections.Item(TheConnectionName).ODBCConnection.Connection = "ODBC;DSN=CHECKMATE"
Next objWBConnect
End Sub

这会强制工作表中的每个 ODBC 连接始终使用 CHECKMATE 的 ODBC 连接名称,因为此电子表格分发给多个用户,其中 ODBC 连接中的 IP 地址可能不同,但名称 CHECKMATE 在每个用户中始终一致连接。

在这个特定的电子表格中,我使用 Power Query 对两组数据进行分组,删除重复项并将数据 return 到其中一个工作表中,我在其中通过 VLOOKUP 和 GETPIVOTDATA 公式汇总信息。这就是导致运行时错误 1004 的原因。我只需要一些帮助来调整此代码以说明 Power Query。

在此先感谢您的帮助!

未经测试,但我猜您需要检查连接的 Type

此外,使用 .Name 连接是不必要的,即

TheConnectionName = objWBConnect.Name
ThisWorkbook.Connections.Item(TheConnectionName)

不需要,因为你可以参考objWbConnect

您的代码的简化版本:

Private Sub Workbook_Open()
    Dim conn As WorkbookConnection
    For Each conn in ThisWorkbook.Connections
       If conn.Type = xlConnectionTypeODBC Then
           conn.ODBCConnection.Connection = "ODBC;DSN=CHECKMATE"
       End If
    Next
End Sub