赌钱游戏平台

当前位置:首页 > 审计之窗 > 审计信息化 > 内容

加快VBA运行速度的几点建议
时间:2019-11-20 21:32  作者:  来源:内部审计管理中心  点击量:450

 在Excel中通过VBA实现大批量机械性工作简单化是使用Excel中一项必不可少的技能。而在VBA的使用中,应当注意一些问题,这样可以加快VBA的运行效率和速度。

 一、关闭屏幕刷新

 在VBA中,屏幕刷新通常是打开状态的,这代表当数据进行写入工作表操作的时候就会导致Excel屏幕界面不断的刷新,特别是在持续性进行合并分离操作时,屏幕刷新将大大影响代码执行效率。通常可以在进入主程序之前将屏幕刷新属性关闭,使用Application.ScreenUpdating=False语句关闭屏幕刷新,这样可以大大改善程序运行速度。如果要恢复屏幕刷新恢复到Excel原来的状态,可以将之设置为True。这个属性设置是永久性设置,必须通过手动设置布尔值完成变化,否则Excel不会自动恢复。

 二、使用数组代替单元格区域进行计算

 大量单元格区域的使用会将单元格的格式等一并进行引用,并且单元格区域引用是需要读写磁盘的。而数组通常是通过在内存内部分配单元进行读写快速完成计算工作,也不用计算格式等。所以大规模计算通过数组会比直接引用单元格进行计算要快几十倍。如果工作量很小,这个差距是体现不出来的,但如果是大量数据等待时间就会得到特别明显的缩短。使用数组的方法是先将单元格中的数值写入数组,计算完成后将数组数值反写入单元格。

 三、循环中使用WithSet减少对象引用

 每一个Excel对象的属性、方法的调用都会使用到OLE接口,这样的调用相当花费时间。在多次循环中减少对象的引用可以加快代码的运行。对同一对象的不同属性使用With,对于同一个对象反复引用使用Set将其设置为对象变量。

 四、用判断减少循环嵌套层数

 多层循环嵌套除了能让别人动脑以外意义不大。特别是在代码调试的时候,多层循环嵌套会让人极其抓狂也不容易理解。因为调试是一步一步进行调试的,多层循环嵌套就非常考验耐性了。所以必须减少嵌套层数,尽量避免三层以上的循环嵌套。