龙空技术网

VBA常用小代码:对工作表按名称快速排序

Excel自力更生 432

前言:

如今大家对“vba排序算法”都比较注意,小伙伴们都需要剖析一些“vba排序算法”的相关内容。那么小编在网上汇集了一些有关“vba排序算法””的相关资讯,希望兄弟们能喜欢,各位老铁们快快来学习一下吧!

能不能快速对工作表按名称进行排序?

比如说,有一个工作薄,有十几张工作表,现在要重新设置工作表排放顺序,能不能快速处理哩?

当然是可以的。

为了方便大家理解和灵活使用VBA小代码,依然采用多步走的方式。

第1步,将工作簿现有的工作表名称提取到表格的A列。

代码如下:

Sub ml()

Dim sht As Worksheet, k&

[a:a].ClearContents '清空A列内容

[a:a].NumberFormat = "@"

'设置文本格式,防止文本数值数据变形

[a1] = "目录"

k = 1

For Each sht In Worksheets

'遍历工作簿中每个工作表

k = k + 1

'累加K值

Cells(k, 1) = sht.Name

'将工作表名称依次放入表格A列

Next

End Sub

第2步,对A列的工作表名称排序。

利用EXCEL自带的排序功能,升序也好,降序也罢,甚至自定义排序,都可以很快捷的完成对A列工作表名称排序的操作。

第3步,此时,我们只需要让工作表按我们A列排列好的顺序重新排排坐就好了。

代码如下:

Sub Sortsheet()

Dim Sht As Worksheet, Shtname$, i&

Set Sht = ActiveSheet

'设置变量sht为当前激活的工作表,即目录表。

For i = 2 To Sht.Cells(Rows.Count, 1).End(xlUp).Row

'遍历工作表A列的数据,A1以外。

Shtname = Sht.Cells(i, 1).Value

'将A列值赋值为字符串变量shtname

Worksheets(Shtname).Move after:=Worksheets(i - 1)

'将工作表依次移动

Next

Sht.Activate

'重新激活目录表

End Sub

OK,搞定了。

代码一两行,工作不用忙断肠,说的就是酱紫的情况了,你也动手试一下吧~~

标签: #vba排序算法