|
建议把不同班组分别安排,以下逻辑供参考(未考虑班组)
Sub test()
arr = Range("S10:S13") '未完成数量
brr = Range("X6:AT6") '每天最大产能
ReDim crr(1 To UBound(arr), 1 To UBound(brr, 2)) '存放结果
For i = 1 To UBound(arr)
sl = arr(i, 1) '未排产数量
For j = 1 To UBound(brr, 2)
If sl = 0 Then Exit For
If sl > brr(1, j) Then '未排产数量 > 当天最大产能
crr(i, j) = brr(1, j) '当天按照最大产能排产
sl = sl - brr(1, j) '未排产数量=未排产数量-当天最大产能
brr(1, j) = 0 '将当天剩余最大产能为0
Else '如果未排产数量 <=当天最大产能
crr(i, j) = sl '安排剩余数量
brr(1, j) = brr(1, j) - sl '当天剩余产能
sl = 0
End If
Next
Next
Range("X10:AT13") = crr
End Sub
|
评分
-
1
查看全部评分
-
|