- 帖子
- 1018
- 主題
- 15
- 精華
- 0
- 積分
- 1058
- 點名
- 0
- 作業系統
- win7 32bit
- 軟體版本
- Office 2016 64-bit
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 桃園
- 註冊時間
- 2012-5-9
- 最後登錄
- 2022-9-28
|
2#
發表於 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
複製代碼 |
|