如何通过VBA实现Excel多段固定行按工作表最后一列排序
VBA宏调整实现指定区域排序解决方案
完整可运行代码
Sub 固定区域按最后列排序() ' 定义固定行范围参数,可根据需求直接修改此处数值 Const 第一区域起始行 As Long = 3 Const 第一区域结束行 As Long = 20 Const 第二区域起始行 As Long = 23 Const 第二区域结束行 As Long = 32 Dim ws As Worksheet Dim 最后一列 As Long Dim 排序区域 As Range ' 遍历当前工作簿所有工作表 For Each ws In ThisWorkbook.Worksheets ' 获取当前工作表的最后一列序号 最后一列 = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' 处理第一个固定行区域 Set 排序区域 = ws.Range(ws.Cells(第一区域起始行, 1), ws.Cells(第一区域结束行, 最后一列)) 排序区域.Sort Key1:=ws.Range(ws.Cells(第一区域起始行, 最后一列), ws.Cells(第一区域结束行, 最后一列)), _ Order1:=xlAscending, Header:=xlNo ' 处理第二个固定行区域 Set 排序区域 = ws.Range(ws.Cells(第二区域起始行, 1), ws.Cells(第二区域结束行, 最后一列)) 排序区域.Sort Key1:=ws.Range(ws.Cells(第二区域起始行, 最后一列), ws.Cells(第二区域结束行, 最后一列)), _ Order1:=xlAscending, Header:=xlNo Next ws End Sub
参数说明
- 代码开头的4个Const常量就是所需的固定行参数,后续如果需要调整排序的行范围,直接修改对应常量的数值即可,不需要修改排序逻辑部分
- 所有操作都绑定了对应工作表对象,不会出现跨表操作错误
- 如果你的排序区域第一行是表头,把
Header:=xlNo改成Header:=xlYes即可
内容的提问来源于stack exchange,提问作者TAB
相关产品推荐
相关产品推荐

