你我也許在工作中都有遇到過相同的一個問題:一個工作簿有幾十個、甚至更多工作表,如果這些工作表的順序不太符合要求,那你是不是得重新排序一下呢,那你又是怎樣去處理的呢?其實不難,有這樣一個高效便捷的方法,下面就由我來具體操作示範一下吧!
具體操作方法
第一步:新建工作表。新建一張空白工作表,將其命名為目錄。
第二步:調出VBA編輯窗口。選擇「目錄」工作表名稱,右擊,選擇查看代碼(或直接按組合鍵ALT+F11);
第三步:編寫提取名稱目錄代碼。雙擊Thisworkbook,打開代碼編輯器,複製下面代碼到代碼編輯窗口,然後回到之前的Excel界面。代碼如下:
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
第四步:插入控制項。點擊開發工具(如圖1),選擇插入一個控制項,插入控制項後會自動跳出指定宏窗口,選擇Thisworkbook.ml,點擊確定(如圖2);


第五步:重命名控制項和提取目錄。重命名控制項為提取工作表目錄,重命名後雙擊,即可獲取工作表目錄,目錄會呈現在A列,如下圖所示;
第六步:排序工作表名稱。排序工作表我們可以篩選排序或者手動排序。篩選排序,點擊篩選按鈕,點擊升序或者降序:手動排序,用滑鼠逐個調整。
第七步:編寫排序代碼。打開之前代碼編輯窗口,複製粘貼下面代碼。代碼如下:
Sub sortsheet()
Dim sht As Worksheet, shtname$, i&
Set sht = ActiveSheet
'設置變量sht為當前激活的工作表,即目錄表。
For i = 2 To sht.Cells(Rows.Count, 1).End(3).Row
'遍歷工作表A列的數據,A1以外。
shtname = sht.Cells(i, 1)
'將A列值賦值為字符串變量shtname
Sheets(shtname).Move after:=Sheets(i - 1)
'將工作表依次移動
Next
sht.Activate
'重新激活目錄表
End Sub
第八步:插入控制項。再插入和之前一樣的控制項,將其命名為批量排序工作表,插入控制項後會自動跳出指定宏窗口,選擇Thisworkbook.sortsheet,點擊確定;
第九步:排序工作表。單擊批量排序工作表控制項,排序結束(如下圖);
到這裡,排序就結束了,自我感覺操作簡單,不管你有沒有VBA基礎其實並不重要,趕快是試一下吧,如有不懂之處,歡迎留言討論!
期待你的關注和轉發分享,更多精彩內容在持續更新中.............
往期精彩文章推薦:
VLOOKUOP函數查找多值並返回對應整行值,一分鐘搞定N張工作表!Excel中不會也得會的技能:工作表的批量調整和批量列印!!