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

如何通过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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:54:03