夜雨聆风学习资料网

ARTICLE · 1087315

领导让我建12个月Excel工作表,我3秒交差!同事手动建到崩溃,10月还排在2月前……

领导让我建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,从而从根源上杜绝掉顺序的问题。

你在建立表格的时候是采用什么样的方式呢?评论区说说你被排序坑过的经历 👀

相关学习资料