【发布时间】:2019-02-11 11:39:44
【问题描述】:
我正在与三个Word Documents 合作。
- 粗糙
- 中东、中东和非洲和拉丁美洲
- Ticker 墓地
在开始时只打开Rough 文档。我需要将数据从 Rough 转移到 CEEMEA & LATAM 并使用 Ticker Graveyard 来匹配一些查询,所以 CEEMEA & LATAM Ticker Graveyard 应该已经打开了。
为此,我检查了其他两个文档是否已打开。如果没有,那么我需要使用Documents.Open 打开特定文档。为此,我正在执行以下更新代码:
sub ErrHandling()
On Error GoTo PROBLEM
Windows("CEEMEA & LATAM").Activate ''''' Here checking CEEMEA & LATAM status
'''' after checking STATUS do some work on CEEMEA & LATAM '''''
Set doc = Application.Windows("Ticker Graveyard").Document ''''' Here checking Ticker Graveyard status
'''' after checking do some work on Ticker Graveyard '''''
Exit Sub
PROBLEM:
If Err.Number = 5941 Then
Documents.Open FileName:="C:\Users\dell\Desktop\EMEA CEEMEA\CEEMEA & LATAM.docx" --- handling only CEEMEA & LATAM document
'''''' These lines handle Date in document while opening document''''
Selection.MoveDown Unit:=wdLine, Count:=2
Selection.EndKey Unit:=wdLine
Selection.MoveUp Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.TypeText Format(Date, "MMMM dd, yyyy")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Else
MsgBox "UNEXPECTED ERROR = " & Err.Number
Exit Sub
End If
Resume Next
End Sub
但问题是两个检查点触发相同的Error Number 我无法使用简单的on error goto 语句区分它们。
现在我的问题是如何区分这两个错误?我该如何分别处理它们? 如果有其他方法可以处理这种情况,请分享。
【问题讨论】:
-
请也向我们展示(作为minimal reproducible example 在问题中调用
sub的代码。就目前而言,断章取义,很难给出建议。马上,不过,我想说代码的结构应该不同,通过检查Documents集合是否存在文档。通常,使用Activate处理特定文档是一个坏主意 - 最好使用 @987654335 @对象。
标签: error-handling ms-word runtime-error goto onerror