【问题标题】:Find locations where connections are used Excel VBA查找使用连接的位置 Excel VBA
【发布时间】:2017-06-26 02:01:53
【问题描述】:

我有大量 Excel 2013 工作簿需要改进,每个工作簿都有多个工作表和多个数据连接,我正在寻找一种快速列出的方法:

  • 连接名称
  • 连接字符串
  • 使用连接的位置(工作表名称或范围会很有用)

我可以在连接对话框中看到所有这些信息,但无法以编程方式跟踪它们。我想一次处理一个文件,所以不用担心在所有文件中运行代码,只是在我开始处理相关文件时可以放入模块中。到目前为止,我在这个网站上找到了这个:

Dim conn As WorkbookConnection
For Each conn In ActiveWorkbook.Connections
Debug.Print conn.Name
Next conn

但我找不到与此相关的位置信息。任何指点将不胜感激。

干杯

凯尔

【问题讨论】:

    标签: vba excel connection connection-string


    【解决方案1】:

    预期输出:

    (Connection's Name): Sheet'sName|1st Cell of Range
    Connection's ODBC Command Text
    (Connection's Name): Sheet'sName|1st Cell of 1st Range // Sheet'sName|1st Cell of 2nd Range
    

    给你:

    Private Sub List_Connections_Ranges()
    
    Dim wC As WorkbookConnection
    Dim rG As Range
    Dim TpStr As String
    
    For Each wC In ActiveWorkbook.Connections
        TpStr = "(" & wC.Name & ") found on : "
        For Each rG In wC.Ranges
            TpStr = TpStr & rG.Parent.Name & "|" & rG.Cells(1, 1).Address(0, 0) & " // "
        Next rG
        Debug.Print Left(TpStr, Len(TpStr) - 4)
        Debug.Print wC.ODBCConnection.CommandText
    Next wC
    
    End Sub
    

    【讨论】:

    • 感谢 R3uK,这正是我所需要的。我看不到如何使用范围对象。
    • @KyleGorf:不客气!只是想看看它是如何工作的,在循环中放置一个断点,然后右键单击wC,然后添加一个间谍!现在您可以浏览它以查看内部数据的结构! ;)
    【解决方案2】:

    代码在我看来还可以。你可以这样试试看你是否有连接:

    Public Sub TestMePlease()
    
        Dim conn As WorkbookConnection
    
        If ActiveWorkbook.Connections.Count > 0 Then
            For Each conn In ActiveWorkbook.Connections
                Debug.Print conn.Name
            Next conn
        Else
            Debug.Print "No connection found"
        End If
    
    End Sub
    

    编辑: 有关连接的更多信息在库中。要查看它,请按 ctrl + 空格,如下所示:

    关于工作表名称,在这里:

        Debug.Print conn.Ranges.Item(1).Parent.Name
    

    关于连接字符串,Microsoft 不会允许您从 VBA 访问此类信息。如果它可用,它应该是一个巨大的安全问题。

    【讨论】:

    • 我认为您错过了这里的要点:使用连接的位置(工作表名称或范围会很有用) 这个想法是列出使用连接的工作簿
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多