2018-06-13 · 百度认证:云南新华电脑职业培训学校官方账号
在使用Excel的过程中我们可能会遇到这个问题,一个工作簿有几十个工作表,结果这些工作表的顺序不太满足要求,我们想将这些工作表快速排序。你有什么好方法来解决这个问题吗?
复杂问题还是得vba代码出马啦。alt+F11——双击thisbook——打开工作簿的代码编辑框。
复制进去如下代码。
Sub ml()
Dim sht As Worksheet, k&
[a:a] = ""
'清空A列数据
[a1] = "目录"
k = 1
For Each sht In Worksheets
'遍历工作簿中每个工作表
k = k + 1
'累加K值
Cells(k, 1) = sht.Name
'将工作表名称依次放入表格A列
Next
End Sub
在开发工具选项插入一个按钮。什么!你的软件怎么没有这个选项卡?看我下一篇经验你就知道怎么让它出现了。
画好一个按钮框以后,软件让你给它指定宏代码,当然是选择产生目录啦。
点击一下获取目录(这是我重命名的,不会的话给我留言),目录就神奇的产生啦。
对目录进行筛选,排序,也可以手工排序。
然后再在代码编辑框输入这些代码。
Sub sortsheet()
Dim sht As Worksheet, shtname$, i&
Set sht = ActiveSheet
'设置变量sht为当前激活的工作表,即目录表。
For i = 2 To sht.Cells(Rows.Count, 1).End(3).Row
'遍历工作表A列的数据,A1以外。
shtname = sht.Cells(i, 1)
'将A列值赋值为字符串变量shtname
Sheets(shtname).Move after:=Sheets(i - 1)
'将工作表依次移动
Next
sht.Activate
'重新激活目录表
End Sub
然后再画一个按钮,指定sortsheet。
改好按钮名称后就是这样的啦,按一下按钮。
神奇的事情就出现了,工作表居然改变了顺序。