Excel中如何使用VBA代码给大量工作表快速排序

2025-11-15 12:02:19

1、在使用Excel的过程中我们可能会遇到这个问题,一个工作簿有几十个工作表,结果这些工作表的顺序不太满足要求,我们想将这些工作表快速排序。你有什么好方法来解决这个问题吗?

Excel中如何使用VBA代码给大量工作表快速排序

2、复杂问题还是得vba代码出马啦。alt+F11——双击thisbook——打开工作簿的代码编辑框。

Excel中如何使用VBA代码给大量工作表快速排序

3、复制进去如下代码。

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

Excel中如何使用VBA代码给大量工作表快速排序

4、在开发工具选项插入一个按钮。什么!你的软件怎么没有这个选项卡?看我下一篇经验你就知道怎么让它出现了。

画好一个按钮框以后,软件让你给它指定宏代码,当然是选择产生目录啦。

Excel中如何使用VBA代码给大量工作表快速排序

Excel中如何使用VBA代码给大量工作表快速排序

5、点击一下获取目录(这是我重命名的,不会的话给我留言),目录就神奇的产生啦。

Excel中如何使用VBA代码给大量工作表快速排序

6、对目录进行筛选,排序,也可以手工排序。

Excel中如何使用VBA代码给大量工作表快速排序

7、然后再在代码编辑框输入这些代码。

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

Excel中如何使用VBA代码给大量工作表快速排序

8、然后再画一个按钮,指定sortsheet。

Excel中如何使用VBA代码给大量工作表快速排序

9、改好按钮名称后就是这样的啦,按一下按钮。

神奇的事情就出现了,工作表居然改变了顺序。

Excel中如何使用VBA代码给大量工作表快速排序

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢