我要根据特定项目的每箱最大单位创建一个纸箱。

例如。

Item    Quantity    MaxQtyPerCarton
A          12            5
B           6            3


通过在Excel中创建行,应该可以得到如下结果

Item    CartonQuantity
A          5
A          5
A          2
B          3
B          3


您可以看到项目A数量已基于MaxQtyPerCarton分为三行。
此外,项目B已根据MaxQtyPerCarton分为两行。

有什么想法吗?

最佳答案

VBA方法(只需对其编程)

Option Explicit

Sub Sub1()
  Dim iRow1&, iRow2&, zItem$, zQuan&, zMaxQ&, zAmt&
  iRow2 = 10 ' ??
  For iRow1 = 2 To 3 ' ??
     zItem = Cells(iRow1, 1)
     zQuan = Cells(iRow1, 2)
     zMaxQ = Cells(iRow1, 3)
     Do While zQuan > 0
       zAmt = zQuan
       If zAmt > zMaxQ Then zAmt = zMaxQ
       Cells(iRow2, 1) = zItem
       Cells(iRow2, 2) = zAmt
       iRow2 = iRow2 + 1
       zQuan = zQuan - zAmt
     Loop
  Next iRow1
End Sub

10-08 01:53