Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1740|回复: 4

[已解决]如何用VBA根据明细计算出总件数,求大侠帮助,谢谢

[复制链接]
发表于 2016-6-22 11:21 | 显示全部楼层 |阅读模式
本帖最后由 从兴开始 于 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的要如何写呢?
最佳答案
2016-6-22 16:17
  1. Function sl(x)  '数量
  2.     x = Replace(x, "件", "")
  3.     sl = Application.Evaluate(x)
  4. End Function

  5. Function js(x)     '件数
  6.     xrr = Split(x, "+")
  7.     For Each y In xrr
  8.         If InStr(y, "件") = 0 Then
  9.             js = js + 1
  10.         Else
  11.             yrr = Split(y, "*")
  12.             For i = 0 To UBound(yrr)
  13.                 If InStr(yrr(i), "件") > 0 Then js = js + Val(yrr(i))
  14.             Next
  15.         End If
  16.     Next
  17. End Function
复制代码

根据明细求总件数.rar

11.87 KB, 下载次数: 3

 楼主| 发表于 2016-6-22 11:30 | 显示全部楼层
[b2] = "=" & Replace([d2], "件", "")       这是B2单元格求数量的代码,C2单元格的求件数的代码怎么写呢?期待你的帮助。
回复

使用道具 举报

发表于 2016-6-22 12:07 来自手机 | 显示全部楼层
建议先上传文档,才会有人来关注。
回复

使用道具 举报

发表于 2016-6-22 16:17 | 显示全部楼层    本楼为最佳答案   
  1. Function sl(x)  '数量
  2.     x = Replace(x, "件", "")
  3.     sl = Application.Evaluate(x)
  4. End Function

  5. Function js(x)     '件数
  6.     xrr = Split(x, "+")
  7.     For Each y In xrr
  8.         If InStr(y, "件") = 0 Then
  9.             js = js + 1
  10.         Else
  11.             yrr = Split(y, "*")
  12.             For i = 0 To UBound(yrr)
  13.                 If InStr(yrr(i), "件") > 0 Then js = js + Val(yrr(i))
  14.             Next
  15.         End If
  16.     Next
  17. End Function
复制代码

根据明细求总件数.rar

14.42 KB, 下载次数: 13

回复

使用道具 举报

 楼主| 发表于 2016-6-22 16:38 | 显示全部楼层
grf1973 发表于 2016-6-22 16:17

完美,辛苦了,谢谢,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 22:30 , Processed in 0.351292 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表