在日常整理 Excel 数据时,你是不是经常遇到层级结构数据?比如部门组织架构、项目分级、目录清单、产品分类……
手动给行做分级折叠、给单元格加缩进对齐,不仅慢还容易乱,数据一多直接头大!
今天给大家分享两段极简 VBA 代码,不用复杂操作,一键实现「自动分级显示 + 智能缩进」,还能一键恢复原样,职场人效率直接拉满!
一、效果先看
✅ A 列填数字层级(1 级、2 级、3 级……)✅ 运行代码:自动折叠分级 + B 列自动缩进✅ 一键取消:恢复无格式原始表格✅ 自动适配列宽,整洁美观

二、适用场景
只要 A 列标注层级数字,剩下的交给代码!
三、两段核心 VBA 代码(直接复制用)
1. 一键生成「分级显示 + 缩进」
这段代码会:
Sub 分级显示()'循环第2行到第15行(可根据自己数据修改行数)For I =2To15'根据A列数字设置行分级层级 Rows(I).OutlineLevel = Cells(I,1)'根据A列数字设置B列缩进 Cells(I,2).IndentLevel = Cells(I,1)Next'汇总行显示在上方ActiveSheet.Outline.SummaryRow = xlAbove'自动适配列宽ActiveSheet.UsedRange.Columns.AutoFitEnd Sub
2. 一键取消「分级 + 缩进」
一键清空所有分级格式,缩进归零,左对齐恢复原始状态:
Sub 取消分级显示()'选中数据区域ActiveSheet.UsedRange.Select'清除分级显示Selection.ClearOutline'取消所有缩进Selection.IndentLevel =0'设置左对齐Selection.HorizontalAlignment = xlLeftEnd Sub
四、超简单使用教程
第一步:准备表格
- A 列填写层级数字(1、2、3…… 代表 1 级、2 级、3 级)
第二步:打开 VBA 编辑器
第三步:运行代码
五、小修改技巧(新手也会)
- 修改数据行数代码里
For I = 2 To 15,把 15 改成你的最后一行数字即可 - 修改缩进列想让 C 列缩进?把
Cells(I, 2) 改成 Cells(I, 3) - 汇总行位置想让汇总行在下方?把
xlAbove 改成 xlBelow
六、为什么推荐用这个方法?
❌ 手动分级:点鼠标点到手酸,容易错
❌ 手动缩进:层级一多完全乱套
✅ 代码自动化:1 秒完成,格式统一,可重复使用
不管是做汇报表格、整理台账、梳理架构,这两段代码都能帮你省下大量时间,再也不用跟 Excel 格式较劲!
总结