返回列表 上一主題 發帖

[發問] &煩請指導程式碼解釋的意思~~~

可以說一下 SHEET1 的 A, B, C 3欄是什麼嗎

如果設一個例的話
A欄是牌子, B欄是貨名, C是件數

假設sheet1是
        A      B     C
1  牌子  貨名  件數
2  A      Z     1
3  A      Y     2
4  B      X     3
5  A      Z     4

運行後sheet2:
     A             B
1  牌子貨名  件數
2  AZ            5
3  AY            2
4  BX            3

字典物件可以看成是一個獨立隱藏的excel頁,上面只有key(鍵)和item(值)兩個欄位
如
d("M")=1 -> 把M鍵的值設成數字1
d("N")="c" ->把N鍵有的值設成字"c"
上面兩行會產生下面4個"格子"
M    1
N    c


有關上面代碼意思
d(.[A1] & .[B1]) = .[C1]  
就是把"牌子貨名"鍵的值設成c1的件數

跟這樣寫一樣
d("牌子" & "貨名") = "件數"  


d(a & a.Offset(, 1)) = d(a & a.Offset(, 1)) + a.Offset(, 2)
就是把每一行的 牌子/貨名 鍵 加上c欄的值

a是a欄 "由a2至a欄最後一個格" 的其中一個格子  
a.Offset(, 1)是a後1欄的格子 (即是同列b欄)
即是
d("AZ")=d("AZ")+1
d("AY")=d("AY")+2
d("BX")=d("BX")+3
d("AZ")=d("AZ")+4

每一行運一下:
d("AZ")=0+1
d("AY")=0+2
d("BX")=0+3
d("AZ")=1+4  (因為之前 d("AZ")已出現,而且值為1,所以抽出原來的值再加上)


最後用
.[A1].Resize(d.Count, 1) = Application.Transpose(d.keys)
.[B1].Resize(d.Count, 1) = Application.Transpose(d.items)
分別把
所有鍵由EXCEL上A1開始向下列出
和
所有值由EXCEL上B1開始向下列出
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題