加载中…
个人资料
Excel星球
Excel星球 新浪个人认证
  • 博客等级:
  • 博客积分:0
  • 博客访问:4,512
  • 关注人气:418
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【Excel VBA篇】VBA常用小代码(七):对工作表快速批量排序

(2016-08-14 22:12:21)
标签:

杂谈

大家好,我们上期分享了VBA常用小代码系列6,内容是快速批量更改工作表名称,后来有个朋友问,能不能批量对工作表名进行排序?比如说,如果有一个工作薄,有十几张工作表,现在要重新设置排放顺序,能不能快速处理?

当然是可以的。

跟我来——请看动画:

http://ww3/large/005IRek6gw1f6ppmq84vwg30jw0cbthl.gifVBA篇】VBA常用小代码(七):对工作表快速批量排序" TITLE="【Excel VBA篇】VBA常用小代码(七):对工作表快速批量排序" />


​为了方便大家理解和使用相关的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自带的排序功能,升序排列也好,降序排列也罢,当然也可以自定义排序。

http://ww1/large/005IRek6gw1f6tmala8ufj30g907h75a.jpgVBA篇】VBA常用小代码(七):对工作表快速批量排序" TITLE="【Excel VBA篇】VBA常用小代码(七):对工作表快速批量排序" />

排序完成后,我们只需要让工作表按我们指定好的顺序重新排放即可。

代码如下:

Sub sortsheet()
    Dim sht As Worksheet, shtname$, i&
    '定义变量,之所以把shtname变量类型定义为$,是为了防止工作表名称为数字时造成错乱
    Set sht = ActiveSheet
  '将当前工作表赋予变量sht
    For i = 2 To sht.Cells(Rows.Count, 1).End(3).Row
    '遍历工作表A列的数据,除了A1以外。A1放的是字符串:目录。
        shtname = sht.Cells(i, 1)
        '将A列值赋予文本变量shtname
        Sheets(shtname).Move after:=Sheets(i - 1)
        '将工作表依次排列
    Next
    sht.Activate
    '重新激活目录表
End Sub


如果不会使用VBA代码,可以参考这个帖子:黑技术~秒破工作表加密!里面有使用VBA代码的图文教程哈~。

最后照例贴送示例文件百度网盘:百度网盘 (网盘里还有很多惊喜~~)

此前及后续更多VBA常用小代码,请关注:@EXCELers

哦,对了,我们下期分享的VBA小代码是: 如果快速将当前工作薄的每个工作表拆分为独立的工作薄。

握手,祝安,明见。




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有