返回列表 上一主題 發帖

[發問] 請問各位大大 如何 合併報表 總和統計

[發問] 請問各位大大 如何 合併報表 總和統計

本帖最後由 GBKEE 於 2015-11-16 07:36 編輯

請問各位大大    如何 合併報表 總和統計

手寫日報表 與 電腦日報表 與 進貨表 都是 用 手動輸入的方式 填入
而 總和統計表 是 將  手寫日報表 與 電腦日報表 與 進貨表 的數值 做 全部的加總

依 序號 由小到大排列 , 呈現一份報表
謝謝指導

總和統計表.rar (2.97 KB)

owen

感謝大大 的指導
owen

TOP

Sub TEST()
Dim j&, Jm&, Arr, Brr, xS As Worksheet, xD, N&
Sheets("總和統計表").UsedRange.Offset(1, 0).ClearContents
 
ReDim Brr(1 To 6000, 1 To 8) '_陣列預設容納 6000 列,可自行調整
Set xD = CreateObject("Scripting.Dictionary")
 
For Each xS In Sheets(Array("手寫日報表", "電腦日報表", "進貨表"))
  Arr = xS.UsedRange.Offset(1, 0).Value
  For j = 1 To UBound(Arr)
    Jm = xD(Arr(j, 1)):   If Arr(j, 1) = "" Then GoTo 99
    If Jm = 0 Then N = N + 1: xD(Arr(j, 1)) = N: Jm = N
    Brr(Jm, 1) = Arr(j, 1):    Brr(Jm, 2) = Arr(j, 2)
    If xS.Name = "進貨表" Then
      Brr(Jm, 5) = Brr(Jm, 5) + Arr(j, 4) + Arr(j, 5) '_總進貨
      If InStr(" " & Brr(Jm, 6) & " ", " " & Arr(j, 6) & " ") = 0 Then  '_排除重覆
        Brr(Jm, 6) = Trim(Brr(Jm, 6) & " " & Arr(j, 6)) '_紀念品
      End If
      Brr(Jm, 8) = Trim(Brr(Jm, 8) & " " & Arr(j, 7)) '_備註
    Else
      Brr(Jm, 3) = Brr(Jm, 3) + Arr(j, 4) '_總張數
      Brr(Jm, 4) = Brr(Jm, 4) + Arr(j, 5) '_總股數
      Brr(Jm, 8) = Trim(Brr(Jm, 8) & " " & Arr(j, 6)) '_備註
    End If
    Brr(Jm, 7) = Brr(Jm, 5) - Brr(Jm, 3) '_總進貨-總張數
99: Next
Next
 
If N = 0 Then Exit Sub
With [總和統計表!A2:H2].Resize(N)
   .Value = Brr
   .Sort Key1:=.Item(1), Order1:=xlAscending, Header:=xlNo
End With
End Sub

程式碼看起來很多, 其實都只是[參照位置]而已, 請自行去慢慢意會, 不多做說明了~~

TOP

        靜思自在 : 【做人的開始】每一天都是故人的開始,每一個時刻都是自己的警惕。
返回列表 上一主題