分享

VB之Excel对象Save,Saveas,SaveCopyAs区别详解

 福竹昊晟 2019-08-24
Sub 复制保存关闭()
Sheets("sheet2").Copy
ActiveSheet.Name = "复制"
ActiveWorkbook.Save          ‘默认路径下保存工作簿,自动重命名
End Sub
在该方法中使用的SAVE保存,save后面不能接参数,是将新建的工作簿直接保存在电脑默认的路径下,并且自动重命名,但是不会关闭保存的工作簿。如果前两句注释掉,第三句仅仅是对该工作簿保存处理,相当于点击保存按钮!
Sub 复制保存关闭2()
Sheets("sheet2").Copy
ActiveSheet.Name = "复制"
ActiveWorkbook.SaveAs                   ‘默认路径下保存工作簿,自动重命名
ActiveWorkbook.SaveAs "新建"            ‘默认路径下保存工作簿,并命名为“新建”
ActiveWorkbook.SaveAs "D:\新建.xlsx"    ‘在D盘下保存工作簿,并命名为“新建”
End Sub
该方法中使用的是saveas,在saveas后面可以接参数,比如“工作簿名称”或者“在某个地址路径下及工作簿名称”,如果存在同名工作簿,则会提示是否覆盖原有工作簿?也可以不接参数,则是保存在默认路径下并自动重命名。保存的工作簿会关闭!上面的代码中会产生一个保存的未关闭的excel文件,应该是前两句代码导致。
如果前两句注释掉,第3句直接正常运行(相当于复制原工作簿);第4句也是相当于复制原工作簿,只是改一下工作簿名字;第5句因为保存的是xlsx格式而出错,改为xlsm就没事,也相当于复制原工作簿并修改工作簿名。此三句均是直接在对应路径下保存并关闭工作簿。
Sub 复制保存关闭3()
Sheets("sheet2").Copy
ActiveSheet.Name = "复制"
'ActiveWorkbook.SaveCopyAs        '后面必须接参数,否则不能运行
ActiveWorkbook.SaveCopyAs "新建"  '不指定文件格式,自动保存在默认路径下,并且是不识别格式文件
ActiveWorkbook.SaveCopyAs "新建.xlsx"       '指定文件格式,自动保存在默认路径下
ActiveWorkbook.SaveCopyAs "D:\新建.xlsx"    '在指定路径下保存为指定格式的文件
End Sub
在使用savecopyas时,首先后面必须接参数,其次必须制定文件的保存格式,再者该方法保存的文件是直接在默认路径下或者指定的地址里保存并关闭该文件(上面代码会产生一个未保存的excel文件,应该是前两句导致!),所以前两句注释掉依然可以正常运行,并且毫无提示!自动覆盖同名工作簿。



上面摘录到论坛的帖子,真的把这些保存方法区别解释的非常清楚,真的很值的我们学习,不只是学习这个知识更是学习这种学习的方法。
以上摘录至:http://club./thread-1366959-1-1.html   


SaveAs另存为即把当前正在使用的文件关闭掉,另存到其它地方,原来的文件关闭不保存。保存后代码所在工作簿和"D:\B.xls"都是打开状态,不受任何影响,还有若要保存的地方已经有同名文件会提示已有是否替换,而SaveCopyAs不会提示会直接替换同名文件.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多