- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 151
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-6-23
               
|
2#
發表於 2011-10-24 22:43
| 只看該作者
本帖最後由 Hsieh 於 2011-10-24 23:10 編輯
- Sub ex()
- Set d = CreateObject("Scripting.Dictionary") '紀錄B、C欄的值
- Set d1 = CreateObject("Scripting.Dictionary") '記錄每秒第一個出現的的價格
- For Each a In Range([A2], [A2].End(xlDown)) '在A欄位做迴圈
- If d.exists(a.Value) = False Then '如果A的值沒被記錄在d字典內
- d(a.Value) = Array(a.Offset(, 1).Value, a.Offset(, 2).Value) '將B、C欄的值記錄到d字典內
- d1(a.Value) = a.Offset(, 1).Value '記住每秒第一個出現的的價格
- Else
- ar = d(a.Value) '取出d字典對應的內容
- ar(0) = a.Offset(, 1).Value - d1(a.Value) '把B欄的值減掉對應A欄的值(第一次出現的值)
- ar(1) = ar(1) + a.Offset(, 2).Value 'C欄位加上前加總的值
- d(a.Value) = ar '把陣列回存到字典中
- End If
- Next
- [F2].Resize(d.Count, 1) = Application.Transpose(d.keys) '把每秒的字串(字典索引值)寫入
- [G2].Resize(d.Count, 2) = Application.Transpose(Application.Transpose(d.items)) '把字典內容寫入
- End Sub
複製代碼 回復 1# color790 |
|