-2

我正在做 powerpoint 2007 自动化项目。我正在使用宏编程(VBA)。运行宏时出现以下错误。

Err.Number= -2147024809 (80070057)

但我关心的不是错误因为我想捕捉这个错误并基于这个错误我想执行一些操作。

这就是为什么我尝试像这样编写错误处理代码的原因:

OnError Goto Err:
'some code

Err:
If Err.number = -2147024809 (80070057) then
'do something
end if
Resume next

所以基本上,如果我以这种方式写错误号,那么它就不允许了。它给出了错误。

主要是当错误发生时,它没有转到“Err:”。它只是弹出带有“结束”和“调试”选项的错误。

4

3 回答 3

1

错误号是数字:-2147024809,为了清楚起见,它只是以十六进制的错误号的形式显示给您。"-2147024809 (80070057)"(80070057)

你要;

if err.number = -2147024809 then ....

或者如果你选择

if err.number = &h80070057 then ....
于 2012-01-27T12:00:32.170 回答
1

错误消息的80070057一部分是负数的无符号十六进制版本-2147024809。删除那部分代码,你会没事的,如果你想跟踪数字的十六进制版本(可用于通过谷歌等研究错误),那么只需将其添加为评论。

于 2012-01-27T12:00:50.350 回答
1

虽然它似乎有效,但一方面,我会谨慎使用保留对象名称 (Err) 作为标签。

On Error GoTo ErrorHandler

' Your code here

' Make sure you don't hit the errorhandler when there's
' no error:
NormalExit:
Exit Sub ' or Function, whichever this is

ErrorHandler:
If err.Number = 123456788 Then
    ' Take corrective action
    ' then continue
    Resume Next
End If
' Trap other specific or general errors here

' Then make sure you know where you're going to exit:
Resume NormalExit

如果您需要捕获可能仅在代码中某些位置发生的非常具体的错误,您还可以执行本地错误处理程序:

On Error Resume Next

' Some code that might cause problems

' Did it throw the error you're trying to trap?
If Err.Number = 12398745 then 
  ' Corrective action
End If

' And now we return to our regularly scheduled error trapping
On Error GoTo ErrorHandler
于 2012-01-27T15:52:56.260 回答