- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 155
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-6-27
               
|
本帖最後由 Hsieh 於 2010-6-21 15:56 編輯
回復 3# wendy - Sub Ex()
- Dim MySh As Worksheets, Sh As Worksheet, MyId As Range, Ar(), Ay(), Ary(), A As Range
- Dim s%, n&
- Set d = CreateObject("Scripting.Dictionary")
- For Each Sh In Sheets(Array("1", "2", "3", "4"))
- With Sh
- Set MyId = .Cells.Find("品號", lookat:=xlWhole)
- For Each A In MyId.EntireRow.SpecialCells(xlCellTypeConstants)
- If A <> "總計" And d.exists(A.Value) = False Then d(A.Value) = d.Count
- Next
- End With
- Next
- d("總計") = d.Count
- With Sheets.Add
- On Error Resume Next
- Application.DisplayAlerts = False
- Sheets("用量需求總表").Delete
- .Name = "用量需求總表"
- .[A1].Resize(, d.Count) = d.keys
- ReDim Ay(0 To d.Count)
- For Each Sh In Sheets(Array("1", "2", "3", "4"))
- ReDim Ar(d.Count)
- With Sh
- Set MyId = .Cells.Find("品號", lookat:=xlWhole)
- For Each A In MyId.EntireRow.SpecialCells(xlCellTypeConstants)
- Ar(s) = d(A.Value)
- s = s + 1
- Next
- For Each A In .Range(MyId, MyId.End(xlDown))
- If A <> "總計" Then
- For i = 0 To d.Count
- If Ar(i) <> "" Then Ay(Ar(i)) = .Cells(A.Row, 1).Offset(, i).Value
- Next
- ReDim Preserve Ary(n)
- Ary(n) = Ay
- n = n + 1
- End If
- ReDim Ay(0 To d.Count)
- Next
- End With
- s = 0
- Next
- .[A1].Resize(n, d.Count) = Application.Transpose(Application.Transpose(Ary))
- .Cells.EntireColumn.AutoFit
- ActiveWindow.Zoom = 75
- End With
- Application.DisplayAlerts = True
- End Sub
複製代碼 把分表彙整成總表
試試不同的思維
採購需求統計表.rar (71.76 KB)
|
|