Board logo

標題: [發問] 數量分拆隔行問題。 [打印本頁]

作者: stephenlee    時間: 2020-7-18 12:40     標題: 數量分拆隔行問題。

工作表1是我從另外一個工作表 複製得來的。
要用這個工作表與word 做郵件合併, 但我需將Qty處 拆分 為 3000一行。
因用郵件合併後,打印出來, 貼在相關貨物上, 將大於3000的數量除3000, 尾數最大要在100內。

即是尾數最大3100 內 當一行, 多於3100 則分拆多一行。 同時因word 內有一個A4 SIZE的 郵件合併。
一張A4 紙, 有四個小四方格。

所以拆數後,同時再分 Name, 為 4行一張A4紙。不足4行的,也要分拆行數出來。
因為Name 是不同貨物,不能 與之前的資料合併。否則會亂。

本身已經有VBA 資料,當我點擊按鈕後(VBA),會自動新增一頁同時執行以上要求動作。 例如工作表2

因為已經是鎖定了3000, 及尾數最大3100。

那如果我增加一欄是要依照 H欄,Color 來做拆數。  (工作表3)

如果H欄為"RED" 的話, 則拆1000。 尾數最大:1100。

如果H欄為"YELLOW" 的話,則拆3000, 尾數最大:3100。


一張工作表只存在 兩種  Color, 但是不一定像工作表3 那樣, 有機會第20-25列是RED.
26-30 又是YELLOW, 這樣, 而GROUP1 和 GROUP2 是一定與color 成一組的。

第二至第七列 是RED 配GROUP1
第八至第十九 是YELLOW 配GROUP2

不會存在GROUP1 中存在有2個 clolor 即是不會1有RED 和YELLOW 同時存在。




如何依照 工作表3 跟Color 來做拆數及分行?  (工作表4)

因資料有多有少, 而且不止 GROUP1
[attach]32295[/attach]
作者: 准提部林    時間: 2020-7-18 15:45

Sub 分拆數量()
Dim Arr, Brr, i&, j%, k%, C&, Qty&, U&, V&, N&
Arr = Range([I1], [A65536].End(xlUp))
ReDim Brr(1 To 30000, 1 To 9)
For i = 2 To UBound(Arr)
    If i > 2 And Arr(i, 9) <> Arr(i - 1, 9) Then N = N + 1
    C = 3000: If Arr(i, 8) = "RED" Then C = 1000
    Qty = Arr(i, 4): U = 0
    For j = 1 To Int((Qty - 1) / C) + 1
        N = N + 1
        For k = 1 To 9: Brr(N, k) = Arr(i, k): Next
        Brr(N, 5) = U + 1
        V = IIf(Qty > C, C, Qty)
        U = U + V
        Qty = Qty - V
        Brr(N, 6) = U + IIf(Qty > 100, 0, Qty)
        Brr(N, 7) = V + IIf(Qty > 100, 0, Qty)
        If Qty <= 100 Then Exit For
    Next j
Next i
Sheets(1).[A1:I1] = Arr
Sheets(1).[A2:I3].Resize(N) = Brr
End Sub


====================================
作者: hcm19522    時間: 2020-7-18 16:13

本帖最後由 hcm19522 於 2020-7-18 16:14 編輯

回復 2# 准提部林

請教 "准大"  找思路
數據只有A2  B2:B21 均不固定 ,D F因公式太長 ,求精簡
https://blog.xuite.net/hcm19522/twblog/589232991
作者: 准提部林    時間: 2020-7-18 16:55

回復 3# hcm19522


RANDBETWEEN 我的版本(2000)無法構成陣列, 所以, 這種題我大都不答,
實際運用, 還是用rand做輔助吧! 不想在日常用不到的公式上做文章~~
作者: hcm19522    時間: 2020-7-18 17:58

回復 4# 准提部林


    謝謝 ! 謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)