- 帖子
- 913
- 主題
- 150
- 精華
- 0
- 積分
- 1089
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- office 2019
- 閱讀權限
- 50
- 性別
- 女
- 註冊時間
- 2011-8-28
- 最後登錄
- 2023-7-19
 
|
43#
發表於 2012-5-10 16:21
| 只看該作者
回復 43# Hsieh
版大,
按您說的是否改成以下這樣,結果還是相同,我用碼表計時,每RUN一個工作表約17~20秒,這是指第一段程式,第二段程式則是舜間就完成了,或者可否請有興趣的人都幫忙看一下,這二段段程式有沒有什麼差別?還可以怎麼改?
真對不起啦!我看到這個速度簡直... - Sub Try_2()
- Workbooks("2012 BCMart Chart.xlsx").Activate
- Application.Calculation = xlCalculationManual
- For s = 5 To 10 '從第某個工作表執行至第某個
- Sheets(s).Activate
- Set sh = ActiveSheet
- n = sh.[al10000].End(3).Row '(AL欄有資料的最後列)這裡可以改成妳的資料中最齊的一欄
- sh.[aa:al] = sh.[aa:al].Value '把公式結果變成值
- sh.AutoFilterMode = False '取消自動篩選
- sh.[a4:ad4].AutoFilter '建立自動篩
- Next '下一個工作表
- Application.Calculation = xlCalculationManual
- ActiveWorkbook.Save
- Workbooks("2012 BCMart Chart.xlsx").Activate
- For s = 5 To 10 '從第某個工作表執行至第某個
- Sheets(s).Activate
- Set sh = ActiveSheet
- n = sh.[AC1000].End(3).Row 'ac欄最後儲存格列號
- sh.Sort.SortFields.Clear '清除重建排序條件
- Ar = Array("ac", "u", "r", "s", "t", "q", "c", "d")
- For i = 0 To UBound(Ar)
- sh.Sort.SortFields.Add Key:=sh.Range(Ar(i) & "5:" & Ar(i) & n)
- Next
- With sh.Sort '對指定範圍以指定條件排序
- .SetRange sh.Range("A5:AD" & n)
- .Header = xlNo
- .MatchCase = False
- .Orientation = xlTopToBottom
- .SortMethod = xlPinYin
- .Apply
- End With
- Next '下一個工作表
- ActiveWorkbook.SaveAs "P:\BCMart Chart\2012 BCMart Chart-sorted.xlsx"
-
- End Sub
複製代碼 |
|