返回列表 上一主題 發帖

vba 累加問題

本帖最後由 Hsieh 於 2011-10-24 23:10 編輯
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")  '紀錄B、C欄的值
  3. Set d1 = CreateObject("Scripting.Dictionary")  '記錄每秒第一個出現的的價格

  4. For Each a In Range([A2], [A2].End(xlDown))  '在A欄位做迴圈
  5.    If d.exists(a.Value) = False Then  '如果A的值沒被記錄在d字典內
  6.       d(a.Value) = Array(a.Offset(, 1).Value, a.Offset(, 2).Value)  '將B、C欄的值記錄到d字典內
  7.       d1(a.Value) = a.Offset(, 1).Value  '記住每秒第一個出現的的價格
  8.       Else
  9.       ar = d(a.Value)  '取出d字典對應的內容
  10.       ar(0) = a.Offset(, 1).Value - d1(a.Value)  '把B欄的值減掉對應A欄的值(第一次出現的值)  
  11.       ar(1) = ar(1) + a.Offset(, 2).Value  'C欄位加上前加總的值
  12.       d(a.Value) = ar  '把陣列回存到字典中
  13.     End If
  14. Next
  15. [F2].Resize(d.Count, 1) = Application.Transpose(d.keys)  '把每秒的字串(字典索引值)寫入
  16. [G2].Resize(d.Count, 2) = Application.Transpose(Application.Transpose(d.items))  '把字典內容寫入
  17. End Sub
複製代碼
回復 1# color790
學海無涯_不恥下問

TOP

回復 3# color790


    你A欄的資料沒有完全群組到
重新排序過你就會發現
學海無涯_不恥下問

TOP

回復 5# color790


    原本A26:A44是8450300共19筆資料
排序後變成A30:A50是8450300共21筆資料
學海無涯_不恥下問

TOP

回復 7# color790


只有一筆資料, 所以它只會顯示相對的價格, 這個有解嗎?

要解甚麼?
學海無涯_不恥下問

TOP

回復 9# color790
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")  '紀錄B、C欄的值
  3. Set d1 = CreateObject("Scripting.Dictionary")  '記錄每秒第一個出現的的價格

  4. For Each a In Range([A2], [A2].End(xlDown))  '在A欄位做迴圈
  5.    If d.exists(a.Value) = False Then  '如果A的值沒被記錄在d字典內
  6.       d1(a.Value) = a.Offset(, 1).Value  '記住每秒第一個出現的的價格
  7.       d(a.Value) = Array(d1(a.Value) - a.Offset(, 1).Value, a.Offset(, 2).Value) '將B、C欄的值記錄到d字典內
  8.       Else
  9.       ar = d(a.Value)  '取出d字典對應的內容
  10.       ar(0) = a.Offset(, 1).Value - d1(a.Value)  '把B欄的值減掉對應A欄的值(第一次出現的值)
  11.       ar(1) = ar(1) + a.Offset(, 2).Value  'C欄位加上前加總的值
  12.       d(a.Value) = ar  '把陣列回存到字典中
  13.     End If
  14. Next
  15. [F2].Resize(d.Count, 1) = Application.Transpose(d.keys)  '把每秒的字串(字典索引值)寫入
  16. [G2].Resize(d.Count, 2) = Application.Transpose(Application.Transpose(d.items))  '把字典內容寫入
  17. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 口說好話、心想好意、身行好事。
返回列表 上一主題