|
楼主 |
发表于 2011-10-29 09:10
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 zjdh 于 2011-10-29 10:16 编辑
sizhen5101 发表于 2011-10-28 22:22
哦,还有两个。出库时库存小于等于0的提醒
你在修改宏时一点都不注意:标点符号的全角还是半角!
物 资 出 库 单(送货单)
写成:物 资 出 库 单(送货单)
以致输入出库单时失去自动提供加权平均价的功能!
我现已修改,增加了出库时库存结果小于0时的提示。
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim ARR, I&, RS&, RJ&, CS&, CJ&
- If Not Intersect(Range("G1:G35"), Target) Is Nothing And Range("B2") = "物 资 出 库 单(送货单)" Then
- On Error GoTo 1
- With Sheets("数据库")
- ARR = .Range("h2:q" & .Range("h65500").End(3).Row)
- End With
- For I = 1 To UBound(ARR) '计算出入库数量和金额
- If ARR(I, 1) = Target.Offset(0, -4) Then
- RS = RS + ARR(I, 5)
- RJ = RJ + ARR(I, 7)
- CS = CS + ARR(I, 8)
- CJ = CJ + ARR(I, 10)
- End If
- Next
- With Sheets("基础信息表")
- ARR = .Range("A2:F" & .Range("A65500").End(3).Row)
- End With
- For I = 1 To UBound(ARR) '加入期初数与金额
- If ARR(I, 1) = Target.Offset(0, -4) Then
- RS = RS + ARR(I, 5)
- RJ = RJ + ARR(I, 6) * ARR(I, 5)
- End If
- Next
- If RS - CS > 0 Then '若入库数(含期初数)大于出库数时,提供平均价
- Target.Offset(, 1) = (RJ - CJ) / (RS - CS)
- Else
- Target.Offset(, 5) = ""
- End If
- If RS - CS - Target < 0 Then MsgBox "本物资原库存数量为: " & RS - CS
- End If
- 1
- End Sub
复制代码 |
|