- 帖子
- 102
- 主題
- 17
- 精華
- 0
- 積分
- 129
- 點名
- 0
- 作業系統
- windows
- 軟體版本
- 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2012-5-16
- 最後登錄
- 2020-9-2
|
4#
發表於 2012-8-13 16:06
| 只看該作者
本帖最後由 lalalada 於 2012-8-13 16:09 編輯
抱歉一開始敘述不清
我把原來的code加上註解- Dim Ar()
- Set d = CreateObject("scripting.dictionary")
- Set dic = CreateObject("scripting.dictionary")
- Set dtemp = CreateObject("scripting.dictionary")
- Ar = Range("A6:E" & [E6].End(xlDown).Row)
- For i = 1 To UBound(Ar)
- If dtemp.exists(Left(Ar(i, 2), 4)) = False Then '若字典3代碼未紀錄
- d(Ar(i, 2)) = Ar(i, 4) '字典1紀錄全名及索引1
- dic(Ar(i, 2)) = Ar(i, 5) '字典2紀錄全名及索引2
- dtemp(Left(Ar(i, 2), 4)) = Ar(i, 4) '字典3紀錄代碼及索引
- MsgBox "d:" & d(Ar(i, 2)) & d.keys & " dic:" & dic(Ar(i, 2)) & " dtemp:" & dtemp(Left(Ar(i, 2), 4))
- Else '若字典3代碼已記錄
- dtemp(Left(Ar(i, 2), 4)) = dtemp(Left(Ar(i, 2), 4)) + Ar(i, 4) '字典3索引1加總
- d(Ar(i, 2)) = d(Ar(i, 2)) + Ar(i, 4) '字典1(全名)索引1加總
- dic(Ar(i, 2)) = dic(Ar(i, 2)) + Ar(i, 5) '字典2(全名)索引2加總
- MsgBox "ELSE ""d:" & d(Ar(i, 2)) & " dic:" & dic(Ar(i, 2)) & " dtemp:" & dtemp(Left(Ar(i, 2), 4))
- End If
- Next i
- [L6].Resize(d.Count, 1) = Application.Transpose(d.keys) '輸出全名
- [M6].Resize(d.Count, 1) = Application.Transpose(d.items) '輸出索引1
- [N6].Resize(dic.Count, 1) = Application.Transpose(dic.items) '輸出索引2
複製代碼 換句話說
希望最後能輸出字典1的全名和字典3的索引值...."
目前問題卡在當條件為否
dtemp可確實加總但d,dic不行(由msgbox可以觀察到)
感謝版大回復:)
本來以為已經沉到雲深不知處 |
|