If (Documents.count = 1) And (ActiveDocument.Name = ThisDocument.Name) Then
Application.DisplayAlerts = False
Application.Quit (wdDoNotSaveChanges)
Else
Application.DisplayAlerts = False
ActiveDocument.Close (wdDoNotSaveChanges)
End If
我遇到上述代码的问题,因为当代码清除第一个If语句(意味着它是唯一的文档打开且文档名称是预期的)时,它仍然赢得了#39;完全关闭Word应用程序。它只会关闭文档,然后留下空白" Word窗口打开。
我知道它正在清除第一个If语句,因为我写了一个快速检查调试文件的每个元素,并且所有内容都按预期显示。另外,如果我单步执行代码,它确实会按原样移动。
有趣/令人沮丧的是,如果我在调试模式中逐步执行代码并进入Application.Quit代码中的部分,它确实会退出整个程序!所以我真的不确定为什么在我运行代码而不是单步执行代码时它不起作用。
尝试过:
1 - 添加'退出子' Application.Quit之后的行
2 - 明确地将Word应用程序设置为对象:
Dim wObj As Object
Set wObj = CreateObject("word.Application")
'Application.Quit (wdDoNotSaveChanges) '
wObj.Quit (wdDoNotSaveChanges)
Set wObj = Nothing
3 - 添加前关闭事件:
Sub DocumentBeforeClose()
ActiveDocument.Saved = True
End Sub
非常感谢任何帮助!
答案 0 :(得分:0)
在Excel中遇到此问题时,我发现必须打电话给const [username, password] = Buffer.from("YOUR_API_KEY", "base64").toString().split(":");
axios.get('https://apipath.com/path?verbose=true', {}, {
auth: {
username,
password
}
})
.then(function(response) {
console.log(response.data, 'api response');
})
后告诉Excel关闭所有文档。
适用于Microsoft Word:
Application.Quit
答案 1 :(得分:0)
我在Application.Quit中遇到了类似的问题(从Excel宏中退出Word)。原来,这与Application.ScreenUpdating的状态有关。 在Excel ScreenUpdating中将宏挂起时设置为false,但正确继续执行以下操作:
Application.ScreenUpdating = True