|
本帖最后由 从兴开始 于 2016-6-22 13:31 编辑
物品名称 | 数量 | 件数 | 明细 | | 银色T01盖 | | | 100*12件+60+70+20 | | 金色T20底
| | | 80*5件+50+90*4件 | | 我每天要发很多件货,可是每件货物的数量不一定相同。 如 上 图 表示:银色T01盖 总共有15件,其中每件装100个的有12件,还有三件分别装60个、70个、20个 下一行表示 金色T20底 总共10件 其中每件装80个的有5件,每件装90个的有4件,还有一件只装了50个。
根据D列明细计算出数量 已经搞定(用VBA替换函数把D列明细中的“件”字替换为空,然后加上“=”就可以了)
现在的问题是:怎样根据D2 和 D3 ( 也就是D列的明细数据)计算出总共有多少件。 以上图为例,要在C2单元格算出件数为 15 在C3单元格算出件数为 10 求大侠帮助,谢谢。
B2的代码(sheet1 的代码)如下
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[b2] = "=" & Replace([d2], "件", "")
[b3] = "=" & Replace([d3], "件", "")
End Sub
C2的要如何写呢?
- Function sl(x) '数量
- x = Replace(x, "件", "")
- sl = Application.Evaluate(x)
- End Function
- Function js(x) '件数
- xrr = Split(x, "+")
- For Each y In xrr
- If InStr(y, "件") = 0 Then
- js = js + 1
- Else
- yrr = Split(y, "*")
- For i = 0 To UBound(yrr)
- If InStr(yrr(i), "件") > 0 Then js = js + Val(yrr(i))
- Next
- End If
- Next
- End Function
复制代码
|
|