返回列表 上一主題 發帖

VBA 加總數值

本帖最後由 GBKEE 於 2014-4-1 06:16 編輯

回復 4# 518587
d(Format(Mid(a, 1, 8), "0000/00/00")) = d(Format(Mid(a, 1, 8), "0000/00/00")) + Val(Mid(a, 9))
是日期的加總
可能因為資料中有些日期沒有,如果要加上日期可以連續就算沒有資料也可以出現日期嗎?!
看不懂
  1. Option Explicit  'B欄數量的加總
  2. Sub Ex()
  3.     Dim D As Object, A As Range, K As Long, I As Long
  4.     Set D = CreateObject("Scripting.Dictionary")    '字典物件
  5.     For Each A In Range([A1], [A1].End(xlDown))     '資料在A欄
  6.         D(Val(Mid(A, 1, 8))) = D(Val(Mid(A, 1, 8))) + A.Offset(, 1)  '數量在B欄的加總
  7.         'Val(Mid(A, 1, 8)) 轉為數字
  8.     Next
  9.     [D:E].Clear
  10.     For I = 1 To D.Count  '最小值到最大值
  11.         K = Application.WorksheetFunction.Small(D.KEYS, I)
  12.         [D1].Offset(I - 1) = Format(K, "0000/00/00")  '轉為日期格式
  13.         [E1].Offset(I - 1) = D(K)                '數量加總

  14.     Next
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# 518587
請附檔看看
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# shouyi63
  1. Option Explicit
  2. Sub EX()
  3.     Dim Rng As Range, A As Double
  4.     Set Rng = [A:B]
  5.     A = Application.WorksheetFunction.SumIf(Rng.Columns(1), "bb", Rng.Columns(2))
  6.     MsgBox A
  7.    
  8.     '"bb" 不分大小寫
  9.     'Rng.Columns(1)=[A:A]
  10.     'Rng.Columns(2)=[B:B]
  11. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 欣賞別人就是莊嚴自己。
返回列表 上一主題