我已经创建了一个宏,它创建了一个Power Query并使用SQL来获取数据,然后在Power Query中转换数据并将结果输出到一个新的选项卡中。该宏然后将查询表转换为一个范围,然后删除查询。我知道我可能已经过度复杂了这个过程,但这里是我的问题...
每当我删除查询时,都会有一个空的连接。有人能帮我写一个宏来删除所有到查询的连接,然后删除查询本身吗?我只想保留输出信息。查询将始终被称为RSPL_Query。
我希望避免删除所有查询或所有连接的任何解决方案。此宏将用于各种电子表格,因为它是加载项的一部分,所以我不希望无意中删除其他人的查询。
我已经尝试了下面的方法,但我总是得到一个运行时错误(1004)-应用程序定义或对象定义的错误。
Sub DeleteRSPLQueryConnections()
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim cn As WorkbookConnection
For Each cn In wb.Connections
If cn.Type = xlConnectionTypeODBC And InStr(1, cn.ODBCConnection.Connection, "RSPL_Query", vbTextCompare) > 0 Then
cn.Delete
End If
Next cn
End Sub
我也尝试了上述的多个其他迭代,但几乎总是得到一个错误或他们不工作。
1条答案
按热度按时间sczxawaw1#
两个潜在问题:
cn.connections
),您删除了第一条记录,因此第二条记录现在成为第一条记录,但是代码跳到下一条记录。Instr
函数中的节引发的,特别是cn.ODBCConnection.Connection
。使用F8单步执行代码到此点,然后使用局部变量窗口检查可供您使用的不同属性和值,并确定需要测试的属性和值。下面的解决方案只解决了我发现的第一个问题,而不是第二个-但我希望上面的信息足以让你自己解决剩下的问题。