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"
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不会提示会直接替换同名文件.
|
|