WorksheetFunction| 链接:#screenupdating [ScreenUpdating]| 链接:#displayalerts [DisplayAlerts]| 链接:#calculation [计算]

所有对象的母亲的Excel本身。我们把它叫做Application对象。应用对象可以访问大量的Excel相关选项。

WorksheetFunction

您可以在Excel中使用VBA的WorksheetFunction属性来访问Excel函数。

命令按钮工作表上,并添加以下代码行:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

当您单击工作表上的命令按钮,Excel的VBA计算平均在单元格A1和A2单元格,并将结果为A3单元格的值。

WorksheetFunction in Excel VBA

注:代替Application.WorksheetFunction.Average的,简单地使用WorksheetFunction.Average。如果你看一下公式栏,你可以看到,公式本身没有插入电池A3。插入式本身成单元格A3,使用下面的代码行:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

有时你可能会发现它很有用禁用屏幕更新(以避免闪烁),同时执行代码。其结果是,你的代码将运行得更快。

命令按钮工作表上,并添加以下代码行:

Dim i As Integer

For i = 1 To 10000

Range("A1").Value = i

Next i

当您单击工作表上的命令按钮,Excel VBA中显示的每个值一秒钟的一小部分,这可能需要一些时间。

ScreenUpdating

2.为了加快过程,如下更新代码。

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000

Range("A1").Value = i

Next i

Application.ScreenUpdating = True

其结果是,你的代码将运行得更快,你只能看到最后的结果(10000)。

DisplayAlerts

您可以指示Excel VBA中不显示警报,同时执行代码。

命令按钮工作表上,并添加以下代码行:

ActiveWorkbook.Close

当您单击工作表上的命令按钮,Excel的VBA关闭Excel文件并询问您是否保存所做的更改。

DisplayAlerts

2.要指示而执行代码的Excel VBA不显示该警报,如下更新代码。

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

其结果是,Excel的VBA关闭您的Excel文件,不问您保存所做的更改。任何更改将丢失。

计算

默认情况下,计算被设置为自动。其结果是,Excel会自动重新计算工作簿每次影响的公式的值改变。如果您的工作簿包含许多复杂的公式,你可以通过设置计算为手动加快您的宏。

命令按钮工作表上,并添加以下代码行:

Application.Calculation = xlCalculationManual

当您单击工作表上的命令按钮,Excel的VBA将计算为手动。

2.您可以通过点击文件选项,公式验证这一点。

Calculation Options

3.现在,当您更改单元格A1的值,B1单元格的值不重新计算。

Manual Calculation

您可以按F9手动计算工作簿。

4.在大多数情况下,你又会在您的代码的末尾设置计算为自动。只需添加以下代码行来实现这一目标。

Application.Calculation = xlCalculationAutomatic