使用VBA为特定的Excel错误消息生成消息?

有没有办法说如果错误1004出现,显示消息“消息”,如果错误9,显示消息“消息2”,而不是通用的非描述符怪胎说话的消息最终用户?

你所要做的就是error handling。

看到这个例子。 您可以使用Err.Number来捕获错误编号

 Sub Sample() On Error GoTo Whoa '~~> Rest of the code Exit Sub Whoa: Select Case Err.Number Case 9 MsgBox "Message1" Case 1004 MsgBox "Message2" End Select End Sub 

跟进

 Sub Sample1() On Error GoTo Whoa '~~> Rest of the code Exit Sub Whoa: MsgBox GetErrMsg(Err.Number) End Sub Sub Sample2() On Error GoTo Whoa '~~> Rest of the code Exit Sub Whoa: MsgBox GetErrMsg(Err.Number) End Sub Function GetErrMsg(ErNo As Long) As String Select Case ErNo Case 9 GetErrMsg = "Message1" Case 1004 GetErrMsg = "Message2" Case Else GetErrMsg = "Message3" End Select End Function