- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
9#
發表於 2013-5-2 16:35
| 只看該作者
本帖最後由 GBKEE 於 2013-5-2 16:54 編輯
回復 8# lifedidi
不會罷!!
CPU 雙處理器 3.40 GHz 1GB的RAM
測試 3000筆資料 費時1秒 , 30000筆資料 費時4秒.- Private Sub CommandButton1_Click() '查詢鈕
- Dim d1 As Date, d2 As Date, T As Date
- Dim Srng As Range, Crng As Range, Orng As Range
- T = Time
- ' 程式碼.... 為何不用4# Hsieh 超版的程式碼
- '程式碼....
- '程式碼....
- TextBox1.Value = Format(hh, "00") & ":" & Format(mm, "00")
- MsgBox Application.Text(Time - T, "[SS]秒") '顯示執行過程的時間
- End Sub
複製代碼 如在30000筆資料的工作表上用自動篩選取的資料會更快的- Private Sub ComboBox1_Change() '選擇 下拉式選單1 立即顯示總總時間;可不用查詢鈕
- Dim T As Date
- T = Time
- If ComboBox1.ListIndex = -1 Then '不在下拉式選單的清單內
- TextBox1 = ""
- MsgBox "專案編號 編號 " & ComboBox1 & " 不正確"
- Else
- Application.ScreenUpdating = False
- With Sheets("工時資料庫")
- .Range("a6").AutoFilter Field:=4, Criteria1:=ComboBox1 'AutoFilter: 原資料庫上自動篩選.
- With .Range("r:r").SpecialCells(xlCellTypeVisible)
- TextBox1.Value = Application.Text(Application.Sum(.Cells), "[hh]:mm")
- End With
- .AutoFilterMode = False
- End With
- Application.ScreenUpdating = True
- MsgBox Format(Time - T, " SS 秒")
- End If
- End Sub
複製代碼 |
|