Excel 错误/对话框的 VBA 错误处理

问题描述 投票:0回答:1

我有一个 Excel 工作簿,它使用 RTD 服务器引入数据,我需要知道何时发生错误。

通常,当 Excel 出现一个对话框,显示“实时服务器‘RTDServer.Class’没有响应。您希望 Microsoft Excel 尝试重新启动服务器吗?”时,工作簿就会停止工作。 问题是对话框停止了一切 - 我想控制它,这样我就可以通过电子邮件提醒自己。

我编写了一些代码来尝试处理直接从 Excel 生成的错误。但是,我有点不确定这是否有效,因为大多数信息都是关于 VBA 代码的错误处理。

在这种情况下,我尝试选择正确的事件的第一件事是使用 SheetCalculate,但我认为我可以使用 SheetChange 或工作簿保存(因为它会自动保存)。 似乎没有对话框/错误? 基本上,出现错误时,它会向我自己发送一封电子邮件。 我不确定它是否会捕获这些事件/错误,因为它们相当罕见,可能每周发生一次。

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

    On Error GoTo CleanFail'no error
    CleanExit:'no errorExit Sub
    CleanFail:
    Error_Handler Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext 
    Resume CleanExit

End Sub

第二个过程基本上是调用来处理错误并发送电子邮件。

Sub Error_Handler(Error_Num As Variant, Error_Source As Variant, Error_Description As Variant, Error_HelpFile As Variant, Error_HelpContext As Variant)
    Send Email_Alert
End Sub

感谢您的帮助

excel vba email events rtd
1个回答
0
投票

没有要捕获的事件,VBA

On Error
不能那样工作。您可以做的是为您的 RTD 调用编写一个包装器wrappers-to-simplify-use - MS Lean。但请注意,并非所有错误都会传回 VBA

© www.soinside.com 2019 - 2024. All rights reserved.