- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 168
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-7-12
               
|
本帖最後由 Hsieh 於 2013-2-27 19:01 編輯
回復 7# lifedidi
首先先把所有Form.Show的參數加上0
Form.Show 0
讓開啟的表單都為非強制回應- Sub 計算(work As Integer)
- Dim Ar(), Ay()
- With Sheet1
- For Each a In .Range(.[D7], .[D7].End(xlDown)) '在D欄的資料循環
- If a.Value = 專案編號.ComboBox1.Value Then '如果D欄的值等於下拉選單的值
- ReDim Preserve Ar(s) '保留陣列元素並重設陣列上限
- ReDim Preserve Ay(s)
- Ar(s) = a.Offset(, 17).Value '將D欄向右17欄的值寫入陣列
- Ay(s) = a.Offset(, -3).Resize(, 26).Value '將A:Z欄的值寫入陣列
- s = s + 1 '預備下次陣列擴展的上限
- End If
- Next
- End With
- If s > 0 Then '如果有符合的資料
- Sheet2.Range("C5").CurrentRegion.Offset(2) = "" '先清空上次的查詢內容
- Sheet2.[C7].Resize(s, 26) = Application.Transpose(Application.Transpose(Ay)) '寫入工作表
- If work = 1 Then ListBox1.AddItem Application.Text(Application.Sum(Ar), "[hh]:mm:ss") '文字方塊顯示加總結果
- If work = 2 Then ListBox1.AddItem Application.Text(Application.Average(Ar), "[hh]:mm:ss") '文字方塊顯示平均結果
- End If
- End Sub
複製代碼 |
|