You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 365 如何重新排序/整理Queries & Connections列表

解决Excel查询与连接列表新增项无法自动排序的问题

Excel的Queries & Connections列表默认不会对新增连接自动重新排序,尤其当你有上百个连接时,手动拖拽调整完全不现实,以下是两个可行的解决方法:

方法1:VBA脚本批量重排序(适合大量连接)

这是最高效的方案,能一次性完成所有连接和查询的排序:

  1. 打开目标Excel文件,按Alt + F11打开VBA编辑器
  2. 右键点击当前工作簿名称,选择「插入」→「模块」
  3. 将以下代码粘贴到新建的模块中:
Sub SortQueriesAndConnections()
    Dim conn As WorkbookConnection
    Dim query As WorkbookQuery
    Dim connList As Collection
    Dim queryList As Collection
    Dim i As Integer, j As Integer
    Dim tempConn As WorkbookConnection
    Dim tempQuery As WorkbookQuery
    
    ' 收集所有连接并按名称排序
    Set connList = New Collection
    For Each conn In ThisWorkbook.Connections
        connList.Add conn
    Next conn
    
    For i = 1 To connList.Count - 1
        For j = i + 1 To connList.Count
            If UCase(connList(i).Name) > UCase(connList(j).Name) Then
                Set tempConn = connList(i)
                connList.Remove i
                connList.Add tempConn, Before:=j
            End If
        Next j
    Next i
    
    ' 重建连接
    ThisWorkbook.Connections.DeleteAll
    For Each conn In connList
        ThisWorkbook.Connections.Add _
            Name:=conn.Name, _
            Description:=conn.Description, _
            ConnectionString:=conn.OLEDBConnection.Connection, _
            CommandText:=conn.OLEDBCommand.CommandText, _
            CommandType:=conn.OLEDBCommand.CommandType
    Next conn
    
    ' 收集所有查询并按名称排序
    Set queryList = New Collection
    For Each query In ThisWorkbook.Queries
        queryList.Add query
    Next query
    
    For i = 1 To queryList.Count - 1
        For j = i + 1 To queryList.Count
            If UCase(queryList(i).Name) > UCase(queryList(j).Name) Then
                Set tempQuery = queryList(i)
                queryList.Remove i
                queryList.Add tempQuery, Before:=j
            End If
        Next j
    Next i
    
    ' 重建查询
    For Each query In ThisWorkbook.Queries
        ThisWorkbook.Queries.Delete query.Name
    Next query
    For Each query In queryList
        ThisWorkbook.Queries.Add _
            Name:=query.Name, _
            Formula:=query.Formula, _
            Description:=query.Description
    Next query
    
    MsgBox "连接与查询已完成排序!", vbInformation
End Sub
  1. 按F5运行脚本,完成后弹出提示框,回到Queries & Connections面板刷新就能看到按字母排序的完整列表

方法2:手动临时重命名(适合少量新增连接)

如果只是几个新增项,不用写脚本,用这个小技巧就能归位:

  • 右键点击新增的连接,选择「重命名」,临时加个特殊前缀(比如_)
  • 连接会自动移到列表顶部,再改回原名称,它就会自动回到字母排序的对应位置

注意事项

  • 运行VBA脚本前一定要备份Excel文件,避免意外丢失连接配置
  • 脚本会重建连接和查询,确保原数据源的权限、路径都正常可用
  • Power Query创建的查询,脚本会保留所有公式和配置,不用担心丢失

内容的提问来源于stack exchange,提问作者Kris Ellis Lewis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:35:10