我有一个工作簿,我打开VBA,修改所述工作簿,然后关闭所述工作簿 . 到目前为止我所拥有的是:
Sub OpenandModify()
application.screenupdating = false
workbooks.open Filename:="FilePath\WkbkName.xlsm"
*Modify Workbook
Workbooks("WkbkName.xlsm").close SaveChanges:=True
application.screenupdating = true
End Sub()
如果我在工作簿已经打开的情况下运行宏,宏将正常工作并关闭上面提到的工作簿 . 但是,如果工作簿尚未打开,则修改后文件仍保持打开状态(注意,修改发生,因此我认为这不是Workbook.Open的问题) . 有任何想法吗?
提前致谢 .
2 回答
用我的工作簿玩了更多 . 我似乎找到了这个问题 . 在修改代码部分,我有另一个子例程,它添加一个不同于WkbkName.xlsm的工作簿的工作表 . 如果工作表已存在,则会将其添加为Sheet(2),并且工作簿将不会关闭 . 如果工作表不存在,则工作簿将打开并正确修改并关闭 . 我仍然不明白为什么它会这样,所以如果有人有任何想法,将不胜感激 .
现在,我只是计划为重复的工作表添加一个检查,如果发生则退出sub .
您遇到的一些问题可能是由于代码与正在处理的工作簿混淆 .
使用变量来保存对工作簿的引用,并在整个代码中仅使用它: