Excel VBA不会关闭最终工作簿

时间:2019-07-18 18:18:22

标签: excel

4个工作簿中打开和关闭的链中的最终工作簿在链中运行时不会通过VBA宏关闭(但单独运行时工作正常,而其他人运行正常)。

我尝试了所有这些代码(当我只打开一个文件,但在最后一个工作簿时,所有代码都起作用)。没有错误或对话框弹出,从这个意义上说,它似乎可以顺利完成,但是窗口仍保持打开状态。没有关闭动作。

Windows("WorkbookName.xlsm").Close

Workbooks("WorkbookName.xlsm").Close SaveChanges:=False

If ActiveCell.Value = "Close this" Then
    ThisWorkbook.Saved = False
    ThisWorkbook.Close
End If

Call WorkbookClose 

(在单独的子目录中尝试了上述所有三个方法,并将其称为)

执行这些操作的过程大致与此相似。 将打开工作簿并自动运行一个私有子项,该子项通过“运行宏名”(Run MacroName)调用工作簿中的宏,就像打开CSV一样,另存为XLSX。

通过打开它们

Workbooks.Open Filename:= _ (directory) (This works)

然后打开主要工作簿,并按照以下步骤操作

此工作簿>私人订阅>通话宏

调用的宏通过以下命令关闭了最后一个工作簿:

Windows("WorkbookName.xlsm").Close 
'This works

运行一些简单的代码,打开另一个文件,另存为XLSX,然后将其关闭。 打开另一个执行相同操作的文件,即自动运行并关闭上一个工作簿,运行一些代码,保存,然后打开另一个工作簿以关闭最后一个工作簿。但是,当它到达第四个工作簿(最后一个)时,它将停止工作。该代码不会关闭该工作簿。

还要提一下,如果我在这些行之后添加任何代码,它们就会执行。好像Excel只是无误地跳过了close命令,一直持续到代码结尾。

Windows("WorkbookName.xlsm").Close

Workbooks("WorkbookName.xlsm").Close SaveChanges:=False

If ActiveCell.Value = "Close this" Then
    ThisWorkbook.Saved = False
    ThisWorkbook.Close
End If

Call WorkbookClose

没有错误消息弹出。

我只希望最终的工作簿关闭。

0 个答案:

没有答案