Excel VBA代码优化,别怕,这个功能只需要2分钟搞定

时间:2019-07-14 来源:www.loantillpaydayp9.com

澳门星际娱乐官网

d61c051d-fbd2-4872-b47c-11c804a0f8e6

当您编写更改工作表的显示内容或格式的代码时,因为此时,当程序执行时,计算机的屏幕需要不断更改内容的显示,即页面不会停止,然后此时屏幕关闭。刷新可以显着加快运行速度,如下面的代码所示。

36cde9ca4b204936a2f0fce88457403d

在上面的代码过程中,使用For . Next语句两次用数据填充A1单元格,最后使用Msgobx显示两次运行的时间比较,如下所示。我们可以看到,当第一个循环关闭时,屏幕刷新(Application.ScreenUpdating=False)将看不到代码的执行。事实上,程序正在不断执行,但我们看不到它,但我们可以改进代码。执行速度。下图中显示的消息框显示了两个代码的运行时间。可以看出,屏幕刷新关闭后的运行时间远小于屏幕刷新开启时的运行时间。也就是说,我们可以关闭屏幕刷新,这可以显着提高速度。

d21790f7ca5d4db88db7dcb77f0a3a1e

我相信有时当我们使用VBA处理数据时,我们经常会遇到编写自己的函数的需要,或者你曾经认为可以直接引用工作表函数,使用VBA中的工作表函数比仅使用VBA更有效码。更快,让我们来看看下面的例子!

6616e62b88c64c64ab5c1f887fe508af

这个代码的过程分别使用VBA代码进行累计加法和直接调用工作表和函数对单元格区域进行求和计算,最后使用消息显示运行时间对比.Cells(1,2)=Cells(1,2)+ Cells (i,1),这是利用循环和累加,也就是k=k + 1进行累加求A1:A30000和;而Cells(2,2)=Application.WorksheetFunction.Sum(Range('A1: A30000') )的意思就是直接利用工作表函数SUM进行求和。

程序执行的结果对比如下所示,其实您明显发现使用工作表函数的速度明显小于我们使用代码的速度。

ff6741d83f7f43bc977409d62663c474

在某些时候我们需要对单元格区域进行操作时,在这个时候也许你会选择使用查找,替换,SpecialCells等方法可以比使用VBA代码获得更快的速度,如下面的代码所示:

a8b9a81d05cf43caa08ab3acc0eaeac1

在这个过程分别使用VBA代码和使用替换,SpecialCells方法删除工作表阿列内容为“EXCEL”的单元格所在的行,

MSGBOX显示两种方法的运行时间,可以看出使用替换方法和SpecialCells方法的运行时间要远远小于使用VBA代码运行的时间,如下图所示,所以说我们在选择某些操作表格的方法时候,需要注意一下使用的方法。

ea881e3cd08242b6b154ff81d472c3f5

XX我们在上面的例子中看到我们已经在使用这个语句结构,这意味着当我们需要重复引用同一个对象时,我们可以使用With语句来获得更快的运行速度,如下面的代码所示:

01c905622a6e4433b1750238f043742d

此代码进程使用With-End with语句在数据填充时引用工作表对象,从而允许代码更快地运行。

请注意,我们的With语句对单个对象或用户定义的类型执行一系列语句。其用法如下:

使用对象

[语句]

结束声明。 With语句可以在对象上执行一系列语句,而无需重复指示对象的名称。在运行时,您只需要引用一次对象而不是引用每个属性赋值,这样您就可以更快地完成。两种方法的运行时间如下所示。可以看出,使用With语句引用工作表对象比不使用引用的速度快几百倍,因此尽可能多地使用对象引用,这可以显着加快程序的速度。执行速度。

6a78a8decc7b4da8a05e3504279ed405

为什么要减少激活或选择语句?因为当我们记录宏时,我们可以看到记录的代码中有很多这样的语句,但这些语句是可有可无的,因为它们的存在显然拖延了我们的执行速度。请参阅以下代码:

c2b143a3d006444aae64fa8116248e3a

In the process of this code, the code obtained by recording the macro is used respectively, which includes activation, selection of cells, worksheet, followed by our modified code for cell filling, and the message box shows the running time of the two methods. It can be seen that The latter method runs much less time than the code generated by the recorded macro, as shown below.

0766ba780ece46a89c0013d9034a6edf

The above is the method we use to speed up the execution of the code that we are going to tell you today. Of course, there are other methods. We will introduce them one by one in the next issue. Every day, a small knowledge point, you will make a big step forward.

If you don't understand or don't understand, you can leave a message below, we will answer them one by one.

9111e668b01f4bccafec8974f519baf9

I am an Excel lesson plan, paying attention to my continued sharing of more Excel skills!

xx