- 帖子
- 913
- 主題
- 150
- 精華
- 0
- 積分
- 1089
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- office 2019
- 閱讀權限
- 50
- 性別
- 女
- 註冊時間
- 2011-8-28
- 最後登錄
- 2023-7-19
 
|
27#
發表於 2021-9-28 19:48
| 只看該作者
回復 26# samwang
您好,
執行很快速,不過程式對我來說,複雜很多!能否幫我註解一下紅字用法?
另外這段程式"_",它代表什麼?
xD(Arr(i, 1) & "_" & Arr(i, 3)) = Val(xD(T)) + Val(Arr(i, 4))
Sub test()
Dim Arr, Brr, xD, i&, T$, T1$
Arr = Sheets("中區").Range("a3:k" & [中區!a65536].End(3).Row + 1)
ReDim Brr(1 To UBound(Arr), 1 To 1)
Set xD = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Arr)
If Not IsDate(Arr(i, 1)) Then GoTo 98
T = Month(Arr(i, 1)): T1 = Month(Arr(i + 1, 1))
If xD.Exists(T) Then
If T <> T1 Then
xD(Arr(i, 1) & "_" & Arr(i, 3)) = Val(xD(T)) + Val(Arr(i, 4))
Else
xD(T) = Val(xD(T)) + Val(Arr(i, 4))
End If
Else
xD(T) = Val(Arr(i, 4))
End If
98: Next
For Each ky In xD.keys
For i = 1 To UBound(Arr)
Brr(i, 1) = xD(Arr(i, 1) & "_" & Arr(i, 3))
Next
Next
Sheets("中區").[h3].Resize(UBound(Brr)) = Brr
End Sub |
|