ARTICLE · 1231869
Excel VBA|工作表纯数字名称自然排序,解决 1,10,2 排序错乱
Excel VBA|工作表纯数字名称自然排序,解决 1,10,2 排序错乱2026年10月22日 星期四 晴天☀️|丙午年 戊戌月 丙寅日 哈喽,你好👋 欢迎来到「搬砖时光日记」。 当工作表名称是纯数字:1、2、3……10,直接普通文本排序,顺序会变成 1,10,2,3,4,不符合我们的阅读习惯。 下面这段 VBA 代码是数字自然排序,按照数值大小排序,输出顺序:1,2,3……10。 3、按 F5 运行。 提醒:操作前务必备份原文件!排序操作不可逆,适合表名全部为纯数字的场景。 补充说明:
升序排序
Alt+F11打开 VBA 编辑器,插入【模块】; 粘贴下面代码;
Sub SortSheet_NumberAsc()Dim i As Integer, j As IntegerDim num1 As Long, num2 As LongFor i = 1 To Sheets.Count - 1For j = i + 1 To Sheets.Countnum1 = Val(Sheets(i).Name)num2 = Val(Sheets(j).Name)If num1 > num2 ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd Sub
降序排序
Sub SortSheet_NumberDesc()Dim i As Integer, j As IntegerDim num1 As Long, num2 As LongFor i = 1 To Sheets.Count - 1For j = i + 1 To Sheets.Countnum1 = Val(Sheets(i).Name)num2 = Val(Sheets(j).Name)If num1 < num2 ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd Sub
工作表名称必须全是数字,如果带 #、文字、符号,该代码不适用; Val 函数只提取开头数字,名称混杂文字容易出错; 隐藏工作表也会参与排序。















































































