Word宏错误消息
问题描述:
我在更改文档模板宏。我无法找到如何做的一件事是自定义错误消息。例如在文档中的错误信息是Word宏错误消息
“错误!人物条目找不到表格”
我想改变这显示别的东西。 Word VBA或VBScript可以做到这一点吗?
答
如果要捕集在VBA一个特定的错误类型,一个方法是使用在错误继续下一步然后测试就行的错误消息之后的动作以捕获,例如:
On Error Resume Next
' try action
If Err.Number <> 0 Then
' handle w/ custom message
Err.Clear
End If
如果你知道确切的错误号码(If Err.Number = N Then
),那当然会更好。
答
那么如果你正在谈论有一个自定义消息框 - 这很容易。 在VBA帮助中查找“msgbox”以获取更好的信息。
Msgbox("Error! No table of figures entries found",16,"Error")
16使其成为一个 '临界增长' 消息。
如果你谈论的是错误捕获,那么你就需要这样的代码:
On Error Resume Next
n = 1/0 ' this causes an error
If Err.Number <> 0 Then
n = 1
if Err.Number = 1 Then MsgBox Err.Description
End If
当发生错误时,数字和描述中给出的Err对象。
答
是否有可能把这个一些 一种全球性的错误处理的? - 克雷格
这是可能的。这是一个非常粗略的例子。
在标准模块:
Sub HandleErr(ErrNo As Long)
Select Case ErrNo
Case vbObjectError + 1024
MsgBox "No table of figures entries found.", vbOKOnly + vbCritical
Case vbObjectError + 1034 To vbObjectError + 4999
MsgBox "Still no table of figures entries found.", vbOKOnly + vbCritical
Case Else
MsgBox "I give up.", vbOKOnly + vbCritical, _
"Application Error"
End Select
End Sub
一些代码:
Sub ShowError()
Dim i As Integer
On Error GoTo Proc_Err
'VBA Error
i = "a"
'Custom error
If Dir("C:\Docs\TableFigs.txt") = "" Then
Err.Raise vbObjectError + 1024
End If
Exit_Here:
Exit Sub
Proc_Err:
If Err.Number > vbObjectError And Err.Number < vbObjectError + 9999 Then
HandleErr Err.Number
Else
MsgBox Err.Description
End If
End Sub
如何的消息出现吗?作为单词插入文档中,还是作为弹出窗口? – 2008-10-21 05:08:39
作为单词插入到文档中。 – Craig 2008-10-21 05:30:41