標題:
請教依序(日前接近的先扣)將庫存量扣除的寫法
[打印本頁]
作者:
adam2010
時間:
2013-1-15 21:51
標題:
請教依序(日前接近的先扣)將庫存量扣除的寫法
請問各位高手,我的原始檔案的D跟E欄位是庫存以及待入庫的量,H欄起是訂單需求日
[attach]13951[/attach]
需要先整理為~
如:A001的庫存+待入庫=500,交期需求1/31=2593,調整為庫存+待入庫=0,交期需求1/31=2093
A003的庫存+待入庫=700,交期需求1/30=500,調整為庫存+待入庫=200,交期需求1/30=0
A005的庫存+待入庫=170,交期需求1/18=50,1/22=60,1/28=769,調整為庫存+待入庫=0,交期需求1/18=0,1/22=0,1/28=709
[attach]13952[/attach]
[attach]13953[/attach]
作者:
stillfish00
時間:
2013-1-16 10:48
回復
1#
adam2010
看了好久才明白意思 , 就是把庫存物料分配到各訂單需求後扣掉?
Sub balance()
Dim rStart, rEnd, cStart, cEnd
Dim ar1, ar2
Dim minValue
rStart = 3 '物料開始列
rEnd = ActiveSheet.[a2].End(xlDown).Row - 1 '物料結束列
cStart = 8 '日期開始欄
cEnd = ActiveSheet.[a2].End(xlToRight).Column - 1 '日期結束列
With ActiveSheet
ar1 = .Range(.Cells(rStart, "D"), .Cells(rEnd, "E")).Value '庫存/待入庫 資料
ar2 = .Range(.Cells(rStart, cStart), .Cells(rEnd, cEnd)).Value '訂單需求資料
For i = LBound(ar2, 1) To UBound(ar2, 1)
For j = LBound(ar2, 2) To UBound(ar2, 2)
minValue = Application.Min(ar2(i, j), ar1(i, 1))
If minValue <> 0 Then
ar2(i, j) = ar2(i, j) - minValue
ar1(i, 1) = ar1(i, 1) - minValue
End If
minValue = Application.Min(ar2(i, j), ar1(i, 2))
If minValue <> 0 Then
ar2(i, j) = ar2(i, j) - minValue
ar1(i, 2) = ar1(i, 2) - minValue
End If
Next
Next
'寫回工作表
.Cells(rStart, "D").Resize(UBound(ar1, 1), UBound(ar1, 2)).Value = ar1
.Cells(rStart, cStart).Resize(UBound(ar2, 1), UBound(ar2, 2)).Value = ar2
End With
End Sub
複製代碼
作者:
adam2010
時間:
2013-1-16 23:16
感謝stillfish00大~沒錯!
真想叫您一聲~神
太感謝了!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)