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


二、适用场景
组织架构表(总公司→部门→小组) 多级目录 / 分类数据 项目拆解、任务分级清单 财务科目、产品分类表
只要 A 列标注层级数字,剩下的交给代码!
三、两段核心 VBA 代码(直接复制用)
1. 一键生成「分级显示 + 缩进」
这段代码会:
根据A 列数字设置行的分级层级 给B 列内容自动添加对应层级缩进 汇总行自动显示在上方 自动调整列宽
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 级) B 列填写对应内容(名称、标题、分类等) 数据从第 2 行开始(第 1 行留作表头)
第二步:打开 VBA 编辑器
按快捷键 Alt + F11右键工作表 → 插入 → 模块 把上面两段代码完整粘贴到模块里 
第三步:运行代码
关闭 VBA 窗口,回到 Excel 按 Alt + F8打开宏窗口选择「分级显示」→ 执行,一键生成效果 想恢复原始表格,选择「取消分级显示」即可
五、小修改技巧(新手也会)
- 修改数据行数
代码里 For I = 2 To 15,把 15 改成你的最后一行数字即可 - 修改缩进列
想让 C 列缩进?把 Cells(I, 2)改成Cells(I, 3) - 汇总行位置
想让汇总行在下方?把 xlAbove改成xlBelow
六、为什么推荐用这个方法?
❌ 手动分级:点鼠标点到手酸,容易错
❌ 手动缩进:层级一多完全乱套
✅ 代码自动化:1 秒完成,格式统一,可重复使用
不管是做汇报表格、整理台账、梳理架构,这两段代码都能帮你省下大量时间,再也不用跟 Excel 格式较劲!
总结
两段 VBA 代码复制即用,零基础也能操作 A 列填层级,一键生成分级折叠 + 智能缩进 一键撤销,安全不破坏原始数据 适配所有层级类表格,通用性拉满