Excel的VBA应用程序对象
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单元格的值。
注:代替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中显示的每个值一秒钟的一小部分,这可能需要一些时间。
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文件并询问您是否保存所做的更改。
2.要指示而执行代码的Excel VBA不显示该警报,如下更新代码。
Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True
其结果是,Excel的VBA关闭您的Excel文件,不问您保存所做的更改。任何更改将丢失。
计算
默认情况下,计算被设置为自动。其结果是,Excel会自动重新计算工作簿每次影响的公式的值改变。如果您的工作簿包含许多复杂的公式,你可以通过设置计算为手动加快您的宏。
命令按钮工作表上,并添加以下代码行:
Application.Calculation = xlCalculationManual
当您单击工作表上的命令按钮,Excel的VBA将计算为手动。
2.您可以通过点击文件选项,公式验证这一点。
3.现在,当您更改单元格A1的值,B1单元格的值不重新计算。
您可以按F9手动计算工作簿。
4.在大多数情况下,你又会在您的代码的末尾设置计算为自动。只需添加以下代码行来实现这一目标。
Application.Calculation = xlCalculationAutomatic