单步执行代码时Excel无法关闭Word(F8)
从单步执行代码时Excel无法关闭Word(F8),excel,vba,error-handling,ms-word,Excel,Vba,Error Handling,Ms Word,从Excel运行以下代码时,它会执行我希望它执行的操作: 它打开Word,引发一个通过CleanError处理的错误,并通过CleanExit关闭Word Sub testWord() ' VBE > Tools > References > Microsoft Word 1?.0 Object Library Dim wdApp As New Word.Application ' 'Open' Word. wdApp.Visible = Fa
Excel
运行以下代码时,它会执行我希望它执行的操作:
它打开Word
,引发一个通过CleanError
处理的错误,并通过CleanExit
关闭Word
Sub testWord()
' VBE > Tools > References > Microsoft Word 1?.0 Object Library
Dim wdApp As New Word.Application
' 'Open' Word.
wdApp.Visible = False
' To prevent Word from staying open if an error occurs.
On Error GoTo CleanError
' Raise an error.
Err.Raise 13
CleanExit:
' Close Word.
wdApp.Quit
Exit Sub
CleanError:
MsgBox "Run-time Error '" & Err.Number & "': " & Err.Description, vbCritical
Resume CleanExit
End Sub
使用F8单步执行代码时,Excel
挂起(仍在运行代码),即在wdApp.退出后不关闭Word
。通过任务管理器关闭Word
时,退出子行
将突出显示,并再次“允许”进一步执行
我这里做错什么了吗?我猜您在手表窗口的wdApp
上设置了一块手表,或者类似的东西
我只在wdApp上的手表上看到这种行为。我猜您在手表窗口中的wdApp
上设置了手表,或者类似的东西
我只在wdApp上看到手表的行为。这是完整的代码吗?@是的,这是完整的代码。无论你用什么代替Error.Raise 13
来引发错误,都应该是无关紧要的。它只在单步执行时挂起。嗯,代码在两个方面对我都有效。我可以用F8单步执行,也可以用F5运行。对不起,不知道,为什么它在你身边不起作用。也许您应该将wdApp.Visible=False
更改为wdApp.Visible=True
以查看Word中发生了什么。您是否在“手表”窗口中的wdApp上设置了手表?这可能是问题所在(至少,我只看到手表的行为…)这是完整的代码吗?@是的,这是完整的代码。无论你用什么代替Error.Raise 13
来引发错误,都应该是无关紧要的。它只在单步执行时挂起。嗯,代码在两个方面对我都有效。我可以用F8单步执行,也可以用F5运行。对不起,不知道,为什么它在你身边不起作用。也许您应该将wdApp.Visible=False
更改为wdApp.Visible=True
以查看Word中发生了什么。您是否在“手表”窗口中的wdApp上设置了手表?这可能是问题所在(至少,我只在手表上看到过这种行为…)我没有看到这种情况发生。谜团解开了。我很高兴代码是正确的。卸下手表或重新打开工作簿可以解决这个问题。起初我认为这是“新的”,这有时是个问题。我花了一点时间试着找出手表的问题。我没想到会出现这样的问题。谜团解开了。我很高兴代码是正确的。卸下手表或重新打开工作簿可以解决这个问题。起初我认为这是“新的”,这有时是个问题。花了一点时间反复试验才发现手表的问题。