在excel应用程序中,我们在执行代码的时候,会弹出是否要确认执行该处理提示框。
当然这个提示框不是我们用msgbox函数做出来的,而是系统自带用来防止误操作带来的影响。
但是有时候我们并不希望有这个提示框,因为会影响我们的操作效率。那么如何去掉这个提示框呢?
此代码的作用是删除工作簿中所有非正在活动的表格。运行程序,你会发现每次删除都会弹出下面的对话框
Sub delSheet()
Dim sht As Worksheet
For Each sht In Worksheets
If sht.Name <> ActiveSheet.Name Then
sht.Delete
End If
Next
End Sub
解决办法:
添加DisplayAlerts属性为FALSE,可以关闭程序运行中是否显示警告信息。
注意:设置为false,要谨记在程序运行完重新设置为true!
Sub delSheet()
Dim sht As Worksheet
Application.DisplayAlerts = False
For Each sht In Worksheets
If sht.Name <> ActiveSheet.Name Then
sht.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
Application.EnableEvents = False
Application.DisplayAlerts = False
Set ws = Workbooks.Open(Filename, corruptload:=xlRepairFile)
特别注意这个参数:
CorruptLoad | 可选 | XlCorruptLoad | 可为以下常量之一:xlNormalLoad、xlRepairFile 和 xlExtractData。如果未指定任何值,则默认行为是 xlNormalLoad,并且当通过 OM 启动时不尝试恢复状态。 |
xlExtractData | 2 | Excel 尝试恢复工作簿中的数据。 |
xlNormalLoad | 0 | 正常打开工作簿。 |
xlRepairFile | 1 | Excel 尝试修复工作簿。 |
实测通过