Excel 365 如何重新排序/整理Queries & Connections列表
解决Excel查询与连接列表新增项无法自动排序的问题
Excel的Queries & Connections列表默认不会对新增连接自动重新排序,尤其当你有上百个连接时,手动拖拽调整完全不现实,以下是两个可行的解决方法:
方法1:VBA脚本批量重排序(适合大量连接)
这是最高效的方案,能一次性完成所有连接和查询的排序:
- 打开目标Excel文件,按
Alt + F11打开VBA编辑器 - 右键点击当前工作簿名称,选择「插入」→「模块」
- 将以下代码粘贴到新建的模块中:
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
- 按
F5运行脚本,完成后弹出提示框,回到Queries & Connections面板刷新就能看到按字母排序的完整列表
方法2:手动临时重命名(适合少量新增连接)
如果只是几个新增项,不用写脚本,用这个小技巧就能归位:
- 右键点击新增的连接,选择「重命名」,临时加个特殊前缀(比如
_) - 连接会自动移到列表顶部,再改回原名称,它就会自动回到字母排序的对应位置
注意事项
- 运行VBA脚本前一定要备份Excel文件,避免意外丢失连接配置
- 脚本会重建连接和查询,确保原数据源的权限、路径都正常可用
- Power Query创建的查询,脚本会保留所有公式和配置,不用担心丢失
内容的提问来源于stack exchange,提问作者Kris Ellis Lewis
相关产品推荐
相关产品推荐

