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
没有错误消息弹出。
我只希望最终的工作簿关闭。