VBA屏幕更新|加快代码运行过程

Excel VBA屏幕更新

VBA屏幕更新 是一个属性,用于避免或防止在运行代码时引起注意力分散闪烁,并通过关闭屏幕更新来使其快速运行。通过将此属性设置为false,可以关闭屏幕更新。

通常,当宏运行时,我们会感觉到excel屏幕变得疯狂了,对此我们几乎感到沮丧。但是,我们如何处理这些情况,并使代码比通常的慢代码运行得更快?

屏幕更新是我们在excel宏运行时注意到的东西。执行任务时,我们可以注意到屏幕正在更新值,直到宏完成其分配的任务为止。当我们的屏幕闪烁或刷新时,它会导致excel程序变慢,并且比平常需要更长的时间来完成任务。

在VBA中,我们有一个名为“ ScreenUpdating”的属性,并将此属性设置为FALSE,这样它将消除代码运行时屏幕更新的过程。

在本文中,我们将告别代码运行时观看屏幕上的动作片的情况。今天,您将使您的代码比平时运行得更快,更快。

何时使用屏幕更新功能?

如果您有什么疑问何时使用此技术。查看以下几点。

  • 当您遍历大量单元时。
  • 从Excel VBA发送电子邮件。
  • 在Excel工作簿之间切换。
  • 打开新的工作簿。

如何在VBA代码中使用屏幕更新功能?

您可以在此处下载此VBA ScreenUpdating Excel模板– VBA ScreenUpdating Excel模板

示例1 –关闭屏幕更新

例如,请看下面的代码。

代码:

 Sub Screen_Updating()将行数作为昏暗的ColumnCount作为长Dim的MyNumber作为的MyNumber = 0对于RowCount = 1到50对于ColumnCount = 1到50 MyNumber = MyNumber +1个单元格(RowCount,ColumnCount)。选择单元格(RowCount,ColumnCount) .Value = MyNumber下一个ColumnCount下一个RowCount结束子 

上面有嵌套的VBA循环,用于从第一列到第50列插入序列号,然后再次返回,并从第二行到第50列插入从51开始的序列号。

这样,它将插入直到到达第50行。

在运行此代码时,您会注意到屏幕闪烁,除了观看这个疯狂的时刻外,您无能为力。

为了避免所有这些情况,我们可以将屏幕更新添加为FALSE。

要首先访问屏幕更新功能,我们需要访问Application对象。

正如我们在Application对象中看到的那样,我们有许多属性和方法。因此,从IntelliSense列表中选择屏幕更新。

笔记: 您必须在声明变量后立即应用“屏幕更新”功能。

选择“屏幕更新”属性后,放置一个等号(=)。

我们可以看到两个布尔值,即FALSE和TRUE。

要停止屏幕更新,请将状态设置为FALSE。

现在,随着宏首先开始运行,它将把屏幕更新状态更新为FALSE,然后进行下一行。

由于宏执行了“屏幕更新为FALSE”,因此在代码执行其任务时将不允许屏幕更新。

示例2 –

最后始终将屏幕更新设置为TRUE

我已经看到很多人将“屏幕更新”设置为FALSE,但是忘记在宏末尾将其设置为TRUE。

始终在宏末尾将“屏幕更新”设置为TRUE。

代码:

 Sub Screen_Updating()昏暗的行数与昏暗的ColumnCount一样长,昏暗的MyNumber等于长时间的应用程序.ScreenUpdating = False MyNumber = 0对于RowCount = 1到50对于ColumnCount = 1到50 MyNumber = MyNumber + 1 Cells(RowCount,ColumnCount)。选择单元格(RowCount,ColumnCount).Value = MyNumber下一个ColumnCount下一个RowCount Application.ScreenUpdating = True End Sub