学习Excel技术,关注微信公众号:
excelperfect
有时候,我们需要使用VBA代码来保存并关闭工作簿,常用的代码如下:Sub SaveAndClose()
'保存并关闭当前工作簿
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
考虑一些例外情况,例如如果是只读工作簿或者是新建工作簿,上面的代码将会有问题。我们对上面的代码进行改进,验证当前工作簿不是只读工作簿,以及之前当前工作簿已经被保存过。Sub SaveAndClosePlus()
'保存并关闭当前工作簿
'验证当前工作簿不是只读的
'并且之前本工作簿已经保存
If Not ActiveWorkbook.ReadOnly And Len(ActiveWorkbook.Path) > 0 Then
ActiveWorkbook.Save
ActiveWindow.Close
End If
End Sub
判断当前工作簿是否只读,若是则返回True,否则返回False。因为我们要保存的工作簿不应该是只读的,所以该属性应返回False,那么代码:Not
ActiveWorkbook.ReadOnly如果该工作簿已经保存过,则其Path属性应返回该工作簿的文件路径,其长度肯定大于0,那么代码:Len(ActiveWorkbook.Path)
> 0这两个条件使用And逻辑符连接,表明上述两个条件都返回True才会执行保存和关闭操作,也就是说只有当工作簿不是只读的且已经保存过才会执行保存和关闭操作。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。