我在更改文檔模板宏。我無法找到如何做的一件事是自定義錯誤消息。例如在文檔中的錯誤信息是Word宏錯誤消息
「錯誤!人物條目找不到表格」
我想改變這顯示別的東西。 Word VBA或VBScript可以做到這一點嗎?
我在更改文檔模板宏。我無法找到如何做的一件事是自定義錯誤消息。例如在文檔中的錯誤信息是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