- 帖子
- 163
- 主題
- 45
- 精華
- 0
- 積分
- 246
- 點名
- 1
- 作業系統
- win7
- 軟體版本
- ie
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-7-8
- 最後登錄
- 2025-3-8
|
本帖最後由 mdr0465 於 2024-3-1 12:56 編輯
回復 3# Andy2483
Andy 學兄,你好
大後輩正在努力重溫所有學兄給各位論壇後學的詳細注解,
但有一點大後輩不明白的,請學兄不厭其煩指導後輩
請看以下的紅色是我不明白的地方
Option Explicit
Sub TEST()
Dim Brr, Z, i&, T$
'↑宣告變數:&是長整數,$是字串變數,沒有指定的是通用型變數
Set Z = CreateObject("Scripting.Dictionary")
'↑令Z變數是 字典
Brr = Range([KH!E3], [KH!A65536].End(xlUp))
'↑令Brr變數是二維陣列,以儲存格值帶入
For i = 1 To UBound(Brr)
'↑設順迴圈!令i從1 到Brr陣列縱向最大索引列號
T = Trim(Brr(i, 2)) & "/" & Val(Brr(i, 3)) & "/" & Val(Brr(i, 4))
'↑令T變數是3個欄位Brr陣列值以"/"符號串接成的新字串
Z(T) = Z(T) + Val(Brr(i, 5))
'↑令T變數為key,item累加第5欄Brr陣列值
這是Z(T) (是寫入key值) = Z(T) + Val(Brr(i, 5)) (是寫入item值)
Next
Brr = Range([Data!G1], [Data!A65536].End(xlUp))
'↑令Brr變數是二維陣列,以另表儲存格值帶入
For i = 2 To UBound(Brr)
'↑設順迴圈!令i從1 到Brr陣列縱向最大索引列號
T = Trim(Brr(i, 1)) & "/" & Val(Brr(i, 2)) & "/" & Val(Brr(i, 3))
'↑令T變數是3個欄位Brr陣列值以"/"符號串接成的新字串
Brr(i - 1, 1) = Z(T)
'↑令Brr陣列第1欄寫入查Z字典的item值
這一句, 為何這樣的編寫是寫入item值而不是寫入key值呢?
Next
With [Data!D2].Resize(UBound(Brr) - 1)
'↑以下是關於結果儲存格的程序
.Value = Brr
'↑令儲存格值以Brr陣列值寫入
.Offset(, 1) = "=D2-SUM(F2:" & [Data!IV1].End(xlToLeft)(2).Address(0, 0) & ")"
'↑令結餘欄寫入公式 讓自動運算
End With
End Sub |
|