我写了一个用来调整文档大小的程序,而且已经定义了:On Error GoTo OBJERROR
OBJERROR:
If Err <> 429 And Err <> 4605 Then
objWord.Quit
Set objWord = Nothing
Exit Sub
Else
Resume Next
End If
为什么,当找不到文件时,扑捉不到他的出错信息,他先弹出一个对话框,“文件未找到”,然后才进OBJERROR:里面?怎么样才能扑捉到着个错误呢??以下是原程序。希望懂的高手解答~~谢谢。
Option Explicit
Sub Main()
MsgBox CStr(Command)
Dim objWord As Word.Application
Dim objWordDoc As Word.Document
Const CLASSOBJECT = "Word.Application"
On Error GoTo OBJERROR
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
Set objWordDoc = objWord.Documents.Open(CStr(Command), , 1, , "11", "11")
With objWordDoc.PageSetup
If .Margin < 40 Then
.Margin = CentimetersToPoints(1.1)
End If
If .BottomMargin < 40 Then
.BottomMargin = CentimetersToPoints(1.37)
End If
If .LeftMargin < 40 Then
.LeftMargin = CentimetersToPoints(1.27)
End If
If .RightMargin < 40 Then
.RightMargin = CentimetersToPoints(1.32)
End If
End With
objWord.PrintOut 0
EXITCODE:
objWordDoc.Close 0
objWord.Quit
Set objWordDoc = Nothing
Set objWord = Nothing
Exit Sub
OBJERROR:
If Err <> 429 And Err <> 4605 Then
MsgBox Str$(Err) & Error$
objWord.Quit
Set objWord = Nothing
Exit Sub
Else
Resume Next
End If
End Sub
在objWord.Visible = False之后加一句:
objWord.DisplayAlerts=wdAlertsNone
加个GOTO跳过去
文件未找到的错误,是你应该事先写语句判断的
楼上的方法只是让它不显示错误框
Dim objWord As Word.Application
Dim objWordDoc As Word.Document
Const CLASSOBJECT = "Word.Application"
---------------------------------
If Dir(Command) = "" Then
文件不存在
Exit Sub
End If
---------------------------------
On Error GoTo OBJERROR
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
-----------------------------------
关闭错误框
objWord.DisplayAlerts = wdAlertsNone
-----------------------------------