VBA小代码:一键对工作表排序

论坛 期权论坛 期权     
Excel之家ExcelHom   2019-6-16 04:12   2989   0
比如说,一个工作薄有十几张工作表,现在要重新设置工作表排放顺序,能不能快速处理?
当然是可以的。 为了方便大家理解和灵活使用VBA小代码,我们采用多步走的方式。



使用以下代码将工作簿现有的工作表名称提取到表格的A列。

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





对已提取的A列工作表名称排序。
利用EXCEL自带的排序功能,可以很快捷的完成对A列工作表名称排序的操作。







此时,我们只需要让工作表按我们A列排列好的顺序重新排排坐就好了。代码如下:

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


OK,搞定!

学会代码一两行,不用老王来帮忙,是不是很简单呢?您也快动手试一下吧~~

图文作者:看见星光
长按二维码,关注微信号: VBA编程学习与实践,星光大神在等你~~

VBA编程学习与实践
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:800
帖子:160
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP