1、公式手动重算问题
为避免代码执行过程中引发公式自动重算,拖慢运行速度,在代码中设置了公式手动重算,并计划在代码执行结束前恢复。如果在代码执行过程中捕获错误就直接退出,而没有执行到恢复公式自动重算,应用程序一直处于公式手动重算状态,造成很多麻烦。
Sub Test1() Application.Calculation = xlCalculationManual '公式改为手动重算 On Error Resume Next ThisWorkbook.Worksheets("工作表").Activate '工作簿内并没有这个工作表,引发下标越界错误 If Err.Number <> 0 Then Exit Sub ''''''''''功能代码'''''''''''''''''''' Application.Calculation = xlCalculationAutomatic '公式恢复为自动重算 End Sub
改进办法捕获错误之后使用改为goto 标签 语句,直接跳转到代码末尾去执行恢复公式自动重算的语句工作簿
Sub Test2() Application.Calculation = xlCalculationManual '公式改为手动重算 On Error GoTo ErrorExit '捕获错误直接跳转到末尾标签处继续执行 ThisWorkbook.Worksheets("工作表").Activate '工作簿内并没有这个工作表,引发下标越界错误 ''''''''''功能代码'''''''''''''''''''' ErrorExit: '标签 Application.Calculation = xlCalculationAutomatic '公式恢复为自动重算 End Sub
2.对象集合问题