由于缺less权限而“catch”错误?

我有一个VBA脚本(在Excel [openxml] – 工作表内)下面的代码:

For Each Co In ThisWorkbook.Worksheets("META").ChartObjects Co.Delete Next Co 

当我第一次打开Excel文件时,“Co.Delete”会抛出“访问被拒绝”错误(“您没有足够的权限来完成此操作”)

当我select另一个工作表,然后回到第一个工作表,然后像以前一样对同一个button进行复制,调用该方法时不会引发此错误。 它看起来很像我的Excel的错误。

我知道有没有尝试…赶上VBA,我知道我可以插入“ on error resume next ”,但我只是不想:)

有没有一种不同的方法,如“ if (Co.DeletionAllowed) Then ”?

AFAIK没有办法提前检测是否会得到这个错误。

这将是捕捉和处理错误的方法:

  On Error GoTo ErrorHandler For Each Co In ThisWorkbook.Worksheets("META").ChartObjects Co.Delete Next Co 'rest of your procedure goes here... 'Now here comes the bit that does the error handling -- equivalent to a catch block ExitProcedure: On Error Resume Next 'Clean-up code goes here Exit Sub ErrorHandler: Select Case Err.Number Case 12345 ' or whatever error number you are getting 'Permission denied when deleting ChartObject. Ignore and skip to next statement. Resume Next ' or whatever else you want to do Case Else MsgBox "Unexpected error! See Immediate window for detail.s" Debug.Print Err.Number, Err.Source & ", Procedure lkjh of Module Module1", Err.Description, Err.HelpFile, Err.HelpContext 'Or whatever else you want to do to log unexpected errors. End Select Resume ExitProcedure Resume 

为什么第二个Resume