在excel中能不能使多个工作表按我输入的名称顺序排列的?

如Sheet1改为T001、Sheet2改为T002、Sheet3改为T003。。。。。,因为我是做工程的,输入每张图纸的工程量可能不会按顺序来输,所以就存在每张工作表的顺序不连续。想弄成连续的,希望知道的朋友告诉下哈,谢谢!~
在此更正下,那个多个工作表的就是多个工作薄。大家应该明白的吧。

按下ALT+F11打开VBA编辑器,插入一个模块,将下列代码粘贴进去使用即可。

'以下为需要复制的代码:

Sub SheetSort()
'工作表按名称排序

Dim i As Long
Dim Sh As Worksheet

'关闭屏幕刷新以提高速度
Application.ScreenUpdating = False

'添加一张临时表提取所有表名并排序
ThisWorkbook.Worksheets.Add after:=Worksheets(Worksheets.Count)
Set Sh = ActiveSheet
For i = 1 To Worksheets.Count - 1
Sh.Cells(i, 1) = Worksheets(i).Name
Next
Sh.Columns(1).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:= _
xlPinYin, DataOption1:=xlSortNormal

'按名称排序后移动表
For i = 1 To Worksheets.Count - 1
Worksheets(Sh.Cells(i, 1).Text).Move after:=Worksheets(Worksheets.Count)
Next

'禁止提示删除临时表再恢复提示
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True

'恢复屏幕刷新
Application.ScreenUpdating = True

End Sub追问

运行的时候提示这句子“ Worksheets(Sh.Cells(i, 1).Text).Move after:=Worksheets(Worksheets.Count)”运行错误9,下标越界。是怎么回事,该怎么修改,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-13
可在数据源表中,先在一个空白列提取名称列的不重复项,在选项的自定义序列中导入该提取的名称列。然后在数据透视表中就可以选择按自定义序列排序,并选择前面定义的自定义序列即可。
第2个回答  2011-10-05
你把鼠标放在Sheet1、Sheet2、Sheet3处,双击左键,可以直接将他更改成你想要的名称,或者你把鼠标放在Sheet1、Sheet2、Sheet3处,单击右键后,会弹出一个窗口,选择重新命名,就可以将他更改成你想要的名称了 。追问

你还没看明白我说的意思,我是说在我该完这些名称后,如何按我想要的顺序排列,Sheet1改为1、Sheet2改为2、Sheet3改为3.····改为N,有很多个这样的工作薄,有可能好多我不是按顺序的,可能是5之后就10或是15等等,那要是我自己一个一个调就很麻烦了,所以想看有什么方便的方法。

追答

这个问题我的方法是先插入后,再修改名称啊,这样序号将会按顺序排列了啊

追问

我知道,关键是我开始的时候没注意这个问题,现在是又想按顺序排列,总不可能我再重新一个一个拉吧,表格里的内容已经固定了,我是不可能去再改图号了对吧,

追答

你把鼠标放在Sheet1或者你想要拉动的工作薄,按住左键拉到你想要的位置就可以了啊。你还可以你把鼠标放在Sheet1或者你想要,点击右键后选择“移动和复制工作表”会弹出一个窗口,排序就非常简单了哦

追问

我就是不想这样调才问的,毕竟不是几张的表格,好几百张呢,谢谢你的回答,你也帮我再看下就是和表格里面的排序效果一样的。可以一下子就排序好的,看有没有这种方法。谢谢你的回答!

相似回答