Excel精英培训网

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

[已解决]用宏数据统计并且不重复统计的问题

[复制链接]
匿名  发表于 2015-3-11 06:21 |阅读模式
我先自己编了右边宏里面的文字,发现每按一次按钮宏就统计一次 “卖出的项目”,然后”目前的库存“ 就一直被统计出来的数量减去不会停。                  
现在我想把右边的代码变成统计一次就停止统计,等有新数据加入卖出的项目时,再统计新加入的数据不统计之前已经统计过的卖出项目。 但是每次都只计算一次后不会再计算。

求大神改一下我的代码 或者 有另外的代码可以给我用在这上面。

不知道大神听得懂不, 是个小小小菜鸟,求大神帮帮忙。。谢谢了。。
最佳答案
2015-3-13 13:27
  1. Sub updatestock()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = Range("a1:f" & [f65536].End(3).Row)
  4.     For i = 2 To UBound(arr)
  5.         d(arr(i, 6)) = d(arr(i, 6)) + 1
  6.         If InStr(arr(i, 6), "√") = 0 Then arr(i, 6) = arr(i, 6) & "√"
  7.     Next
  8.     For i = 2 To UBound(arr)
  9.         If d.exists(arr(i, 1)) Then arr(i, 5) = arr(i, 5) - d(arr(i, 1))
  10.     Next
  11.     Range("a1:f" & [f65536].End(3).Row) = arr
  12. End Sub
复制代码

Excel

Excel

macro code

macro code
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-3-11 06:54 | 显示全部楼层
只是附件 忘记上传了

(版本 1).zip

14.97 KB, 下载次数: 5

回复

使用道具 举报

发表于 2015-3-13 13:27 | 显示全部楼层    本楼为最佳答案   
  1. Sub updatestock()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = Range("a1:f" & [f65536].End(3).Row)
  4.     For i = 2 To UBound(arr)
  5.         d(arr(i, 6)) = d(arr(i, 6)) + 1
  6.         If InStr(arr(i, 6), "√") = 0 Then arr(i, 6) = arr(i, 6) & "√"
  7.     Next
  8.     For i = 2 To UBound(arr)
  9.         If d.exists(arr(i, 1)) Then arr(i, 5) = arr(i, 5) - d(arr(i, 1))
  10.     Next
  11.     Range("a1:f" & [f65536].End(3).Row) = arr
  12. End Sub
复制代码
回复

使用道具 举报

发表于 2015-3-13 13:28 | 显示全部楼层
卖出项目凡是统计过的做个标记就行了。

(版本 1).rar

12.66 KB, 下载次数: 2

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 07:45 , Processed in 1.066132 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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