Word宏错误消息

Word宏错误消息

问题描述:

我在更改文档模板宏。我无法找到如何做的一件事是自定义错误消息。例如在文档中的错误信息是Word宏错误消息

“错误!人物条目找不到表格”

我想改变这显示别的东西。 Word VBA或VBScript可以做到这一点吗?

+0

如何的消息出现吗?作为单词插入文档中,还是作为弹出窗口? – 2008-10-21 05:08:39

+0

作为单词插入到文档中。 – Craig 2008-10-21 05:30:41

如果要捕集在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