小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

02如何對工作表按名稱按自定義規(guī)則排序?

 asaser 2022-05-14
說起排序這個詞,想必大家都不陌生,這是數(shù)據(jù)處理過程中最常見的操作之一,但我們今天聊的不是數(shù)據(jù)排序,而是如何對工作表排序。舉個例子,如下圖所示,一張工作簿有N張工作表,現(xiàn)在需要按升序對其重新排序。

圖片

操作步驟如下▼

首先使用以下代碼將工作表的名稱羅列在當前表的A列;相關代碼我們在如何遍歷工作表中分享過了,不知道你是否還記得:

Sub GetShName()    Dim sht As Worksheet, k As Long    Application.ScreenUpdating = False    With Range("a:a")        .Clear '清除所有        .NumberFormat = "@" '設置文本格式    End With    k = 1    Cells(1, 1) = "目錄"    For Each sht In Sheets '遍歷工作表        k = k + 1 '累加個數(shù)        Cells(k, 1) = sht.Name    Next    Application.ScreenUpdating = TrueEnd Sub


示例文件中代碼返回結果如下:

圖片


然后對A列數(shù)據(jù)進行排序,這個時候你可以用各種手段修理它們,升序、降序、自定義排序、基操、函數(shù)等等,你愛怎么著就怎么著,開心就好。

最后使用以下代碼
按照A列排序后的數(shù)據(jù)對工作表重新排放位置。

代碼看不全可以左右拖動..▼

Sub SortSh()    Dim sht As Worksheet, shtAct As Worksheet    Dim aData, i As Long, intCount As Long    Dim strName As String, strErr As String    On Error Resume Next '忽略程序錯誤繼續(xù)運行    If ActiveWorkbook.ProtectStructure = True Then        MsgBox "工作簿有保護,工作表無法排序。"        Exit Sub    End If    Application.ScreenUpdating = False    aData = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)    intCount = Sheets.Count '所有工作表的數(shù)量    Set shtAct = ActiveSheet '當前工作表    For i = 1 To UBound(aData) '遍歷名單        strName = aData(i, 1) '工作表名稱        Err.Clear '錯誤狀態(tài)初始化        Set sht = Sheets(strName)        If Err.Number Then '試錯法判斷工作簿是否存在相關工作表            strErr = strErr & "," & strName        Else            '移動到最后一個工作表之后            sht.Move after:=Sheets(intCount)        End If    Next    If strErr <> "" Then        MsgBox "以下工作表名稱工作簿中不存在" & vbCr _                & Mid(strErr, 2)    Else        MsgBox "排序完成。"    End If    shtAct.Select '回到操作表    Application.ScreenUpdating = TrueEnd Sub


代碼詳細解析見注釋,概要解釋如下▼

第11行代碼將A列的數(shù)據(jù)存入數(shù)組aData。

第14至第24行代碼遍歷數(shù)組。依次將相關工作表名移動到最后一張工作表之后——聽說每個人都有一個夢想,做一名人民教師,為的不是教書育人,而是點名扔粉筆頭。代碼運行的場景大概就是這樣:你化身人民教師,先將工作表排成一排,讓他們按身高或親疏依次站到排尾,也就實現(xiàn)有序排列……



第18行代碼使用試錯法判斷當前工作簿是否存在相關工作表名稱,該方法我們在如何遍歷工作表中也詳細解釋過了……時至今日,不用多說,你也應該知道那一章的知識點對工作表對象有多么重要,不管是我們之前分享過的工作表的新建、刪除,現(xiàn)在分享的排序,還是以后分享的更名、匯總、加密破密等,多少都有那一章知識點的影子……

揮揮手,明天再見。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多