我有一个电子表格,其中包含对 ODBC 连接名称“CHECKMATE”的多个查询。在 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 对两组数据进行分组、删除重复项并将数据返回到其中一个工作表,我在其中通过 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
关于Excel VBA 运行时错误 1004 - ThisWorkbook.Connections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66907968/