Excel精英培训网

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

请求优化VBA程序

[复制链接]
发表于 2016-8-9 23:32 | 显示全部楼层 |阅读模式
附件是一个记账表,需要达到的效果是:
1、品种是不定项(有机会在“进仓”直接增加),统计时需要从“进仓”自动获取列表
2、需要分开“进口、国产”两个产地
3、当“品种”存在时,计算“件数、总价”总和,如此类推,当有不重复的品种时就接续计算
4、不在“件数、总价”栏显示公式

我用了比较愚蠢的办法完成了,但感觉有优化的地方,请求大侠们给点意见,谢谢。

另外,附件的Excel是2010版做的,里面用到SUMIFS和COUNTIFS函数,如果改用Excel 2003,这两个函数就不适用了,请问这个时候要怎样处理?谢谢。
(单位上只有2003版的Office,死活不升级)

SC.zip

25.61 KB, 下载次数: 8

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-8-11 08:25 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-8-12 19:25 | 显示全部楼层
QCW911 发表于 2016-8-11 08:25
SUMIFS,COUNTIFS 写个自定义函数

请问要怎样写...?
回复

使用道具 举报

发表于 2016-8-13 14:57 | 显示全部楼层
是这个意思?

SC.zip (27.01 KB, 下载次数: 6)
回复

使用道具 举报

发表于 2016-8-13 20:47 | 显示全部楼层
su45 发表于 2016-8-13 14:57
是这个意思?

If InStr(p, rng(i, 1)) = 0 Then
        p = p & rng(i, 1) & ","
End If

以前只想过用字典去重复,没想过用这个方式。学习了,谢谢!
回复

使用道具 举报

发表于 2016-8-13 21:09 | 显示全部楼层
CaseyLee 发表于 2016-8-12 19:25
请问要怎样写...?

快速写了一个试试

SC.rar

15.59 KB, 下载次数: 4

回复

使用道具 举报

发表于 2016-8-14 09:33 | 显示全部楼层
pengyx 发表于 2016-8-13 20:47
If InStr(p, rng(i, 1)) = 0 Then
        p = p & rng(i, 1) & ","
End If

这样要少敲几次键盘,另,年纪大了,字典那么多字母记不到,呵呵…………
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 11:15 , Processed in 0.451305 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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