返回列表 上一主題 發帖

VBA 加總數值

回復 1# 518587
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. For Each a In Range([A1], [A1].End(xlDown)) '資料再A欄
  4.    d(Format(Mid(a, 1, 8), "0000/00/00")) = d(Format(Mid(a, 1, 8), "0000/00/00")) + Val(Mid(a, 9))
  5. Next
  6. [D1].Resize(d.Count, 1) = Application.Transpose(d.keys) '日期放到D欄
  7. [E1].Resize(d.Count, 1) = Application.Transpose(d.items) '數量加總放到E欄
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 4# 518587
  1. Sub ex()
  2. Dim k#
  3. Set d = CreateObject("Scripting.Dictionary")
  4. For Each a In Range([A1], [A1].End(xlDown)) '資料再A欄
  5. k = DateValue(Format(Mid(a, 1, 8), "0000/00/00"))
  6.    d(k) = d(k) + a.Offset(, 1) '數量在B欄
  7. Next
  8. [D:E] = "" '清空舊資料
  9. r = 1
  10. For i = Application.Min(d.keys) To Application.Max(d.keys) '最小日期到最大日期寫入
  11. Cells(r, 4) = CDate(i)
  12. Cells(r, 5) = d(i)
  13. r = r + 1
  14. Next
  15. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 8# 518587

上面的程式會出錯,大概是日期部分
程式是由A1開始,因為你的資料有標題
將範圍從A2開始應該就可行
學海無涯_不恥下問

TOP

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題