- 帖子
- 2843
- 主題
- 10
- 精華
- 0
- 積分
- 2899
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2025-5-31
|
本帖最後由 准提部林 於 2015-11-29 13:05 編輯
Sub TEST()
Dim i&, R&, C&, xD, xArea As Range, Arr, xR As Range, X&, Y&, Z%
C = [IV2].End(xlToLeft).Column
R = [B65536].End(xlUp).Row
Set xD = CreateObject("Scripting.Dictionary")
For i = 4 To R Step 4: xD(Cells(i, 1) & "") = i - 3: Next i '取得〔Tester No〕的〔列位〕
For i = 3 To C: xD(Format(Cells(2, i), "yyyy-mm-dd")) = i - 2: Next i '取得日期的〔欄位〕
Set xArea = [C4].Resize(R - 3, C - 2) '統計數值區
xArea.ClearContents: Arr = xArea '清除統計,以Arr代出
For Each xR In Range([summary!D3], [summary!D65536].End(xlUp))
X = xD(xR.Value) '〔Tester No〕的〔列位〕
Y = xD(Format(xR(1, 3), "yyyy-mm-dd")) '日期的〔欄位〕
If X = 0 Or Y = 0 Then GoTo 101
Z = Int(Hour(xR(1, 3)) / 8) '早午晚時段計算
Arr(X + Z, Y) = Arr(X + Z, Y) + 1 '累計時段次數
Arr(X + 3, Y) = Arr(X + 3, Y) + 1 '累計當日次數
101: Next
xArea = Arr
End Sub |
|