NO.220-工作表排序
作者:看見星光微博: / 知識星球:Excel
HI,大家好,我是星光。
說起排序這個(gè)詞工作表函數(shù)怎么設(shè)置,想必大家都不陌生,這是數(shù)據(jù)處理過程中最常見的操作之一,但我們今天聊的不是數(shù)據(jù)排序,而是如何對工作表排序。
我舉個(gè)例子,如下圖所示,一張工作簿有N張工作表,現(xiàn)在需要按升序?qū)ζ渲匦屡判颉?/p>
操作步驟如下:
首先使用以下代碼將工作表的名稱羅列在當(dāng)前表的A列;相關(guān)代碼我們在如何遍歷工作表中分享過了,不知道你是否還記得▼
Sub GetShName()
Dim sht As Worksheet, k As Long
Application.ScreenUpdating = False
With Range("a:a")
.Clear '清除所有
.NumberFormat = "@" '設(shè)置文本格式
End With
k = 1
Cells(1, 1) = "目錄"
For Each sht In Sheets '遍歷工作表
k = k + 1 '累加個(gè)數(shù)
Cells(k, 1) = sht.Name
Next
Application.ScreenUpdating = True
End Sub
示例文件中代碼返回結(jié)果如下:
然后對A列數(shù)據(jù)進(jìn)行排序,這個(gè)時(shí)候你可以用各種手段修理它們,升序、降序、自定義排序、基操、函數(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ù)運(yùn)行
If ActiveWorkbook.ProtectStructure = True Then
MsgBox "工作簿有保護(hù),工作表無法排序。"
Exit Sub
End If
False =
aData = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)
intCount = Sheets.Count '所有工作表的數(shù)量
Set shtAct = ActiveSheet '當(dāng)前工作表
For i = 1 To UBound(aData) '遍歷名單
strName = aData(i, 1) '工作表名稱
'錯誤狀態(tài)初始化
Set sht = Sheets(strName)
If Err.Number Then '試錯法判斷工作簿是否存在相關(guān)工作表
strErr = strErr & "," & strName
Else
'移動到最后一個(gè)工作表之后
after:=Sheets(intCount)
End If
Next
If strErr <> "" Then
MsgBox "以下工作表名稱工作簿中不存在" & vbCr _
Mid(strErr, 2)
Else
MsgBox "排序完成。"
End If
'回到操作表
True =
End Sub
代碼詳細(xì)解析見注釋,概要解釋如下▼
第11行代碼將A列的數(shù)據(jù)存入數(shù)組aData。
第14至第24行代碼遍歷數(shù)組。依次將相關(guān)工作表名移動到最后一張工作表之后——聽說每個(gè)人都有一個(gè)夢想,做一名人民教師,為的不是教書育人,而是點(diǎn)名扔粉筆頭。代碼運(yùn)行的場景大概就是這樣:你化身人民教師,先將工作表排成一排,讓他們按身高或親疏依次站到排尾,也就實(shí)現(xiàn)有序排列……
第18行代碼使用試錯法判斷當(dāng)前工作簿是否存在相關(guān)工作表名稱,該方法我們在如何遍歷工作表中也詳細(xì)解釋過了……時(shí)至今日,不用多說,你也應(yīng)該知道那一章的知識點(diǎn)對工作表對象有多么重要,不管是我們之前分享過的工作表的新建、刪除,現(xiàn)在分享的排序,還是以后分享的更名、匯總、加密破密等,多少都有那一章知識點(diǎn)的影子……
有啥不明白的地方可以在會員群中提問交流,揮揮手,咱們明天再見。
示例文件下載,百度網(wǎng)盤提取碼: mjwi
需要系統(tǒng)學(xué)習(xí)Excel工作表函數(shù)怎么設(shè)置,卻找不到優(yōu)質(zhì)教程?學(xué)習(xí)Excel的過程中遇到疑難問題,卻找不到人及時(shí)作出解答?加入我的付費(fèi)社群,和微軟最有價(jià)值專家(MVP)全面精進(jìn)Excel,學(xué)習(xí)+答疑都不再是問題……
加入我的Excel會員,全面學(xué)習(xí)Excel透視表 函數(shù) 圖表 VBAPQ想學(xué)啥學(xué)啥
本文由公眾號“Excel星球”首發(fā)。