- 帖子
- 262
- 主題
- 8
- 精華
- 0
- 積分
- 280
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- Office 2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- HK
- 註冊時間
- 2015-8-11
- 最後登錄
- 2025-3-24

|
回復 4# dou10801 - Sub zz()
- Dim a, Title, b(), c&, n&, k&, r&, t&
- Title = [b2:f2].Value '取標題
- c = UBound(Title, 2) '取標題長度
- a = [b2].CurrentRegion.Value '取表1的資料放入 a Array
- t = UBound(a, 2) / c - 1 '計算表1中標題的重複次數 以 0 開始至 t, 為以下第一循環作好計算 ,請看 @_@
- ReDim b(1 To UBound(a) * (t + 1), 1 To c + 1) '建立一個較大的 b Array
- For n = 0 To t '@_@
- k = n * c + c '計算 k 的值, 即出貨數量在Title中的位置
- For i = 2 To UBound(a) '由 a 的第2行循環
- If a(i, k) Then '行列對應有出貨數量, 進行以下程序
- r = r + 1 '建立新行數給 b Array
- For j = 1 To c '循環標題長度
- b(r, j) = a(i, k - c + j) '取 a Array 中相對行列的資料給 b Array
- Next '循環
- b(r, c + 1) = b(r, 4) * b(r, 5) '計算金額
- End If
- Next '循環
- Next '循環
- Workbooks.Add 1 '新建工作簿
- [a1].Resize(1, c) = Title '寫入標題
- Cells(1, c + 1) = "Amount" '寫入新標題
- [a2].Resize(r, c + 1) = b '將 b Array 寫入
- [a1].CurrentRegion.Borders.Value = 1 '畫上格線
- End Sub
複製代碼 |
|