首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel中的VBA代码你可以写出来,可是你真的会优化代码吗?

 我们很多时候在用Excel VBA去实现某一个功能的时候,也许会用到很多行的代码去实现我们最终要的结果。

  可是有时候你殊不知,有些代码是经过录制宏产生的,或者语句繁琐,变量不正确从而造成你所写的程序运行的时间非常久,或者造成计算机的CPU使用率达到100%,严重可导致系统崩溃发生。

但是这样的结果显而易见,并不是我们想要的结果。

我们想要的是一个可靠的,高效率的,简化操作的,提高劳工效率,减少错误率的,适应性强的程序。

所以我们不得不寻求更好的方法去改善,去优化代码,以寻求高效率完成我们的工作。

下面我们重点和大家分享一下,怎么去优化我们的代码:

1.关闭屏幕刷新,速度可以提升30%的速度。所以大家在写完代码的时候,不妨在我们程序最开始加上这句话,当然在程序执行完之前,也就是最后一句话的时候,你要记得将屏幕刷新打开。

Sub test()

Application.DisplayAlerts = False

Cells(1, 1) = 1

Application.DisplayAlerts = True

End Sub

2. 使用工作表函数,这句话的意思就是说我们某些时候,可以优先考虑Excel自带的函数去实现这个,而不是我们自己去写代码。当然效果都是一样的,但是时间可能就不是一样。

Sub ShtFunctions()

a.使用循环进行数据累加计算

For i = 1 To 40000

MySum = MySum + Cells(i, 1)

Next

b.直接使用工作表进行求和

Cells(1, 1) = Application.Sum(Range("A1:A40000"))

End Sub

3. 使用With-End With语句,减少引用对象的寻找速度,提高程序的效率。当然这样还有一个优点,就是我们要改变引用对象的时候,只需改变一个位置即可,这样也便于后期的维护和修改。

Sub test()

With Range("E5").Font

.Font.Bold = True

.Name = "宋体"

.Size = 9

.Name = "Arial Unicode MS"

.Size = 9

End With

End Sub

4.数据类型的正确选用,这个也是非常关键的。这个就好像你去打水喝,正确的应该是拿杯子过去,但是你拿着一个很大的桶去接水喝,当然都可以完成喝水这个动作,但是明显就可以看出拿桶的那个人选择就有问题。

其实在我的Excel中处理数据的能力也是不一样的,处理速度最快的是long>integer>byte>Single>Double>Currency。

需要注意的是,如果我们不定义变量,那么系统默认为Variant类型,当我定义合适,速度就会有提升,所以每次我们千万记得要选择最合适自己的啦!

5.使用数组,数组和字典是VBA的核心功能,所有在可以使用数组的时候,千万记得使用数组。在某些时候,在使用数组和不使用数组对比下,速度可能相差100倍。

尽量减少变量的使用,增加数组和字典的配套使用。

还有就是多使用动态的数据,少使用静态的数据,数组的Redim和Preserve要常记得。

6.多清除对象的缓存,比如 Set d = Nothing,这句话的意思就是卸除对象的引用。这样也可以稍微加快一点执行的速度。

另外我们可以通过减少循环的次数,减少类模块的使用,减少模块的使用,减少我们语句中的激活的次数,或者寻找更优质效率更高的代码。

以上就是自己在学习VBA的时候,自己的一点点优化代码的一点点方法,可能还有其他的更好的优化只能慢慢去了解去学习,慢慢积累。

虽然Excel VBA并不万能的,但是能帮助我们提高工作效率,就已经足够让你我欣慰。与君共勉之!

PS:学习的苦难需要我们主动面对,生活的苦难你躺着它自己主动就过来啦!与君共勉!!!

以上就是今天要和大家分享的技巧,希望对大家有所帮助,祝各位一天好心情!

唯有不断学习,才能不被淘汰!

Excel中每一个方法都有特定的用途,不是他们没有用处,只是你不了解或者暂时用不着,建议你收藏起来,万一哪天用着呢?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210216A000I600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券