您现在的位置是:首页 > Excel技巧>Excel工作表按照表名排序

工作表名称怎么排序-Excel工作表按照表名排序

发布于2022-04-150人已围观

有时候Excel表格很多,需要对表格进行排序。(当然,要是我设计的表。不存在一个文件很多个表的情况)

可以用拖动或者其他方式控制表格的顺序,但比较麻烦。麻烦的时候,就可以用vba写代码完成操作。


1、按Alt + F11,进入vba后台界面

2、右键,工程资源管理器,插入模块(没有工程资源管理器?按快捷键Ctrl + R)

工作表名称怎么排序

3、在新建的模块中写入如下代码:

    Option Explicit
    '作者:杨仕航'
    '日期:2016-10-13'
     
    Public Sub 工作表升序()
        WorkSheetSorted False
    End Sub
     
    Public Sub 工作表降序()
        WorkSheetSorted True
    End Sub
     
    '工作表升序(reverse=False)或降序(reverse=True)排列'
    Public Function WorkSheetSorted(Optional reverse As Boolean = False)
        Dim i As Long, SortedIndex As Long
     
        '从第二个表格开始判断,进行名称比较'
        For i = 2 To ActiveWorkbook.Sheets.Count
            SortedIndex = GetSortedIndex(i, reverse)
            If SortedIndex < i Then
                ActiveWorkbook.Sheets(i).Move ActiveWorkbook.Sheets(SortedIndex)
            End If
        Next
    End Function
     
    '获取排序的位置'
    Private Function GetSortedIndex(CurrentSheetIndex As Long, reverse As Boolean)
        Dim CheckSheetName As String
        Dim CurrentSheetName As String
        Dim i As Long, start_num As Long, end_num As Long, step_num As Long
        
        '当前表名'
        CurrentSheetName = ActiveWorkbook.Sheets(CurrentSheetIndex).Name
        
        '比较表名'
        For i = 1 To CurrentSheetIndex - 1
            CheckSheetName = ActiveWorkbook.Sheets(i).Name
            
            If (CheckSheetName > CurrentSheetName) <> reverse Then
                GetSortedIndex = i
                Exit For
            End If
        Next
        
        GetSortedIndex = i
    End Function

4、最后,点击Excel菜单“视图”-->“宏”,执行对应的宏

工作表名称怎么排序


只是想用用这个功能而已的话,下面内容就不用看了。若需要进一步学习的话,继续往下看。下面稍微讲解一下代码的原理。

这里主要弄明白两个东西就差不多了:

1)冒泡排序

2)工作表移动位置


先取表名,用类似冒泡排序的方法判断工作表应该移动到哪个位置,再用工作表的move方法移动工作表。

这里我使用到的排序原理是类似冒泡,文字描述起来有点抽象,结合图片描述。

假如有6个工作表,顺序如下图:

工作表名称怎么排序

按照顺序,从左到右判断表名。由于第1个表没有其他表参与判断,我们从第2个表开始判断。

这样就可以划分两个区域,完成排序部分和等待排序部分:

工作表名称怎么排序

取第2个表,也就是等待排序部分第1个表。升序排序的话,“1”应该要排在“3”前面:

工作表名称怎么排序

接着,继续判断下一个工作表。“2”升序排序要排在“1”和“3”之间:

工作表名称怎么排序

剩下的按照这个逻辑排序下去,直到完成排序。

代码原理讲解完毕,你再结合代码尝试一下


相关文章

文章评论

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

标签云

站长特荐