Excel精英培训网

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

[已解决]为什么在类模块中用到数组,速度就变慢。

[复制链接]
发表于 2014-5-25 12:06 | 显示全部楼层 |阅读模式
本帖最后由 silenthunter 于 2014-5-25 12:12 编辑

附件中一个用类模块设置事件过程,一个未用类模块。
未用类模块的查询快,用类模块的查询慢,要等两秒钟就像卡死,但它们都在数组中查询,已经避免了在对象中循环。
请教为什么会有差别。

VBA silenthunter 网友提问.rar (147.26 KB, 下载次数: 18)
发表于 2014-5-25 12:26 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-5-25 12:56 | 显示全部楼层
qh8600 发表于 2014-5-25 12:26
不懂类,求学习

假如有100个按钮,但他们的作用都一样,那写100次事件代码是不是很麻烦。
回复

使用道具 举报

发表于 2014-5-25 12:57 | 显示全部楼层
silenthunter 发表于 2014-5-25 12:56
假如有100个按钮,但他们的作用都一样,那写100次事件代码是不是很麻烦。

类模块好不好学啊
回复

使用道具 举报

发表于 2014-5-25 22:12 | 显示全部楼层    本楼为最佳答案   
本帖最后由 香川群子 于 2014-5-25 22:15 编辑

类模块中:
If UserForm1.TotalData(i, 1) = Item_ListboxGroup.Value Then

直接窗体代码:
If TotalData(i, 1) = Itemno_ListBox1.Value Then


这就是两者的差别。


类模块中代码改一下:
Private Sub Item_ListboxGroup_Click()
    Dim i
    Name_ListboxGroup.Clear
    myTotalData = UserForm1.TotalData
    For i = 2 To UBound(UserForm1.TotalData, 1)
       If myTotalData(i, 1) = Item_ListboxGroup.Value Then Name_ListboxGroup.AddItem UserForm1.TotalData(i, 2)
    Next
End Sub

速度马上就正常了。


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 04:39 , Processed in 0.441596 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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