返回列表 上一主題 發帖

[發問] SUMIF 問題

Sub TEST()
Dim Arr, r&, i&, xD, T$
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([F5], [C65536].End(xlUp))
For i = 1 To UBound(Arr)
    T = Arr(i, 1):  r = xD(T):  Arr(i, 1) = Empty
    If r = 0 Then r = i: xD(T) = i
    Arr(r, 1) = Arr(r, 1) + Arr(i, 4)
Next i
[G5].Resize(UBound(Arr)) = Arr
End Sub

TOP

回復 7# n7822123


用字典檔去記錄〔首次〕出現的〔列號〕,
利用這列號,即可將累加值放在這個位置,

另,利用Arr陣列的〔第一欄〕做為累加值的存放區,即不必再定義一個Brr陣列,
但在迴圈時,用變數取得它的值 >> T = Arr(i,1)
然後再將它清空 >> Arr(i,1) = Empty

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題