ARTICLE · 1087315
领导让我建12个月Excel工作表,我3秒交差!同事手动建到崩溃,10月还排在2月前……
你的领导要求你建立一份为期一年的工作表格,并且要按月份排序来命名表格。但是用了十分钟之后发现标签仍然很混乱,十月排在了二月之前。
并不是因为你操作的速度比较慢才出现这样的情况,在Excel中工作簿名称是以字母为序排列的,并没有按照数字来排布。
搞懂这一点,30个表3秒就能建完。
方法一:VBA,懂点代码的一秒建完
① 有规律的名称(1-31号、1-12月)
Sub 生成工作表()
Dim i%
For i = 1 To 31
Sheets.Add After:=ActiveSheet
Sheets(Sheets.Count).Name = Format(i, "00") & "号"
Next
End Sub
就是这个 Format(i,"00") 会自动填充零,所以就有了 01 号、02 号......这样就可以保证排序不会出错。

② 无规律的名称(人名、部门、分类)
先在A列(A2开始)把所有表名写好,再运行:
Sub 生成工作表()
Dim i%
For i = 2 To Sheets(1).Range("a6000").End(xlUp).Row
Sheets.Add After:=ActiveSheet
Sheets(Sheets.Count).Name = Sheets(1).Cells(i, 1)
Next
End Sub
操作步骤:按住alt+f11键,在插入菜单中选择模块选项卡,在粘贴位置处输入代码并点击F5执行命令,将文件保存为扩展名为.xlsm的形式以启用宏功能。
方法二:数据透视表,零代码(重点避坑)
1. A列整理好工作表名称,带表头;
⚠️ 别直接写"1月、2月、10月",10月会排到2月前面。正确做法是用公式=TEXT(ROW(A1),"00")&"月"生成补零名称,再复制 → 粘贴为值。
2. 选中列表 →【插入】→【数据透视表】;
3.把名称字段放到筛选框中去;

4.数据透视表分析-选项-显示报表筛选页-确定;

按下Shift键选择所有的新建工作表,并在其中删除透视图之后,就可以得到一沓空白的工作表了。
四点要注意的地方,可以截屏保存起来
1.所有的数字表格都要加上前导零:01月、02月不能写成1月、2月;
2.不能使用“\\、/、?、*、[、]、:”等特殊字符;
3.公式产生的名字要变成数值的形式来显示;
4. 生成出错?Shift批量选中工作表,一次性全删。
最后一句话总结
追求效率、懂得一点VBA编程知识的人会选择使用VBA来实现;不想写代码 → 选透视表"显示报表筛选页"。
对于带有数字的表格标题要先填充上0,从而从根源上杜绝掉顺序的问题。
你在建立表格的时候是采用什么样的方式呢?评论区说说你被排序坑过的经历 👀