ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3461|回复: 32

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-7-14 09:17 | 显示全部楼层 |阅读模式

上传的附件是我的一个报表统计分析工具。原先是通过逐行删除不符合条件的单元行来达到同样的报表输出,但耗时太长,最复杂的统计分析工作耗时180秒。后改用 asdf1001 兄 的方法,一次性删除不符合条件的单元行,速度得到了大幅提高,最复杂的统计分析工作耗时约16秒。现根据 UNARTHUR 兄 教导的采用二维数组的方法,速度又更上一层楼了,最复杂的统计分析工作也只用了几秒钟便可完成统计分析。

这个小工具正在不断完善当中,恳请大家能花些时间帮我优化代码,提出宝贵的改进意见,特别是在精简代码和进一步提高运行速度(也就是算法)等方面。毕竟闭门造车是不能创造出好的作品的。

figfig 兄 用 SQL 处理 Excel 数据很在行,请您也能讲讲如何用SQL 来处理这个统计分析报表的方法。

同时感谢 button 兄 以前对这个小工具提出许多的宝贵意见。

谢谢大家!

VfwL9yVN.rar (91.37 KB, 下载次数: 80)

[此贴子已经被作者于2005-7-14 14:00:36编辑过]

大家能否花点时间帮我审校我的统计分析报表工具,谢谢!

大家能否花点时间帮我审校我的统计分析报表工具,谢谢!

大家能否花点时间帮我审校我的统计分析报表工具,谢谢!

大家能否花点时间帮我审校我的统计分析报表工具,谢谢!

UcTfB88N.rar

95.02 KB, 下载次数: 10

大家能否花点时间帮我审校我的统计分析报表工具,谢谢!

J9eqUHvl.rar

89.51 KB, 下载次数: 6

大家能否花点时间帮我审校我的统计分析报表工具,谢谢!

ifLpOEaf.rar

89.7 KB, 下载次数: 17

大家能否花点时间帮我审校我的统计分析报表工具,谢谢!

sEIYFcv5.rar

91.95 KB, 下载次数: 13

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!

TA的精华主题

TA的得分主题

发表于 2005-7-14 11:30 | 显示全部楼层

通过变量取值,改判断控件的值为判断变量的值,减少对控件的访问

窗体的标题栏还是留着的好,在UserForm_Initialize中的代码越少越好。

以上是个人看法。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-14 12:09 | 显示全部楼层
以下是引用plxmm在2005-7-14 11:53:54的发言: 点击TextBox3后,提示Image6......,这是个啥东东?
多谢指正,已更正,删除那句多余的代码即可。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-14 14:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用plxmm在2005-7-14 12:15:06的发言: 哈,又逮住一个Bug,你的东东退出后,应该把你的‘统计分析’菜单卸载啊。
已在第一楼更正错误,谢谢!

TA的精华主题

TA的得分主题

发表于 2005-7-17 16:55 | 显示全部楼层

Foshan: 由于时间有限,所以不能仔细拜读你的大作,所以下面提出的几点,完全是从代码角度的一点优化

1. 关于Menu的代码一般应该是下面的结构,否则异常退出后,再次打开程序就会有两个菜单 Sub CreatMenu() On Error Resume Next ' del menu On Error GoTo 0 'Creat menu End Sub

2. 大量的If...Else结构,有的可以简化,例如:时间段代码可以改为Select Case,这样结构比较清晰

Select Case Me.ComboBox1.ListIndex Case Is < 3 Call mytime(new_text3, 0, 0) Case 4 Call mytime(new_text3, 13, 0) '...... End Select

3. 模块代码中至少三处用到了类似arr1(k, 11) = arr1(k, 11) + arr1(m, 11)的7行代码,应该使用过程,参考

Sub m() Dim a(2) As Integer For i = 0 To 2 a(i) = i Next mm a() For i = 0 To 2 Debug.Print a(i) Next End Sub Sub mm(ByRef b As Variant) For i = 0 To 2 b(i) = b(i) + 1 Next End Sub

4. 窗体中结算部分,可以简化为下面的代码,楼主还有类似的代码,请自己改善 因为为CheckBox4本身就是逻辑值,所以应该用Not CheckBox4代替CheckBox4=False的条件,速度会快

If CheckBox3 And ComboBox2 <> "" Then If Not CheckBox4 Then Call jsck("不含金额", new_text4) ElseIf TextBox1 <> "" Or TextBox2 <> "" Then Call jsck("含金额", new_text4) End If End If

5.明显表和汇总表中整段代码,除了其中的"明显表"和"汇总表"几个字符区别,其余部分完全相同,应该作为一个过程调用

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-18 17:00 | 显示全部楼层

守柔版主根据我的代码已作了优化处理,在此先感谢守柔版主的相助!

但遇到一个问题,当执行到 n_date = VBA.IIf(IsDate(arr(i, 19)), CLng(arr(i, 19)), 40000) 时出现错误,提示“类型不匹配”,请大家帮助看如何解决,谢谢!

JYT2z3zn.rar (96.21 KB, 下载次数: 23)

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-18 17:24 | 显示全部楼层
以下是引用plxmm在2005-7-18 17:09:15的发言:

不对呀! 这句代码的意思是 如果arr(i,19)是日期型数据,则将日期型数据转换成数值,否则等于40000 。“结算后”是文本,就应该执行后面的语句 等于40000。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-18 17:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

将 n_date = VBA.IIf(IsDate(arr(i, 19)), CLng(arr(i, 19)), 40000) 改回原来的代码(下面的代码) ,为什么就不会出现这个问题?

If IsDate(arr(i, 19)) Then n_date = CLng(arr(i, 19)) Else n_date = 40000 End If

TA的精华主题

TA的得分主题

发表于 2005-7-18 17:55 | 显示全部楼层

佛山兄,你是什么版本的?

另,你的查询条件是什么?我动画看不到

[em04]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-18 18:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我的电脑是 win--xp + office 2003。查询的条件是以下的图片(其实任何的查询均会遇到这个问题,因任何的查询条件都要运行 mytime 这个过程):
[此贴子已经被作者于2005-7-18 18:03:03编辑过]

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!

恳请大家花些时间帮忙优化我的统计分析报表工具,谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-29 13:33 , Processed in 0.052020 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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