- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
10#
發表於 2016-4-5 16:36
| 只看該作者
本帖最後由 准提部林 於 2016-4-5 16:40 編輯
回復 9# msmplay
C欄有公式,不動它,利用AJ欄為輔助(注意:AJ欄不可為文字格式,須為〔通用格式〕)
Sub 排序班別()
Dim i As Integer
Application.Calculation = xlCalculationManual '關閉自動重算, 加快速度
For i = 1 To 31
With Sheets(i & "")
.[AJ5:AJ16] = .[D5:D16].Value '將D欄公式值暫貼至AJ欄
'排序(改以AJ欄為主)
.[C5:AJ16].Sort Key1:=.[AJ5], Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
.[AJ5:AJ16] = .[C5:C16].Value '將C欄公式值暫貼至AJ欄
On Error Resume Next '略過沒有空白格的錯誤
.[AJ5:AJ16].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '隱藏
On Error GoTo 0
.[AJ5:AJ16].ClearContents '清除AJ欄
End With
Next i
Application.Calculation = xlCalculationAutomatic '恢復自動重算
End Sub |
|