|
楼主 |
发表于 2014-5-25 22:47
|
显示全部楼层
本帖最后由 黑山上的鹰 于 2014-5-26 00:50 编辑
zjdh 发表于 2014-5-25 21:45
非常感谢你,我想到了,把你的程序改了一下,可以被其他程序调用了,符合我的要求,困扰两年的问题就这样被解决了。Sub TEST()
ReDim RK(1 To 2, 1 To 1)
Cells(10, 7).Select
For I = 6 To Range("A65536").End(3).Row
If Cells(I, 3) <> "" Then '有入库
R = R + 1
ReDim Preserve RK(1 To 2, 1 To R)
RK(1, R) = Cells(I, 3) '数量
RK(2, R) = Cells(I, 4) '单价
End If
If Cells(I, 6) > 0 Then '有出库
ZJ = 0
ZS = 0
CK = Cells(I, 6)
For J = 1 To R
If ZS = Cells(I, 6) Then Exit For '够数
If RK(1, J) > Cells(I, 6) Then '一笔够数
RK(1, J) = RK(1, J) - CK
ZJ = ZJ + RK(2, J) * CK
ZS = ZS + CK
Else '一笔不够数
ZS = ZS + RK(1, J)
ZJ = ZJ + RK(1, J) * RK(2, J)
CK = CK - RK(1, J)
RK(1, J) = 0
End If
Next
Cells(I, 7) = ZJ / ZS '单价
Cells(I, 8) = ZJ '金额
End If
Next
End Sub |
|