Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单步执行代码时Excel无法关闭Word(F8)_Excel_Vba_Error Handling_Ms Word - Fatal编程技术网

单步执行代码时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上设置了手表?这可能是问题所在(至少,我只在手表上看到过这种行为…)我没有看到这种情况发生。谜团解开了。我很高兴代码是正确的。卸下手表或重新打开工作簿可以解决这个问题。起初我认为这是“新的”,这有时是个问题。我花了一点时间试着找出手表的问题。我没想到会出现这样的问题。谜团解开了。我很高兴代码是正确的。卸下手表或重新打开工作簿可以解决这个问题。起初我认为这是“新的”,这有时是个问题。花了一点时间反复试验才发现手表的问题。