excel的vba 中saveas后如果重名,如何处理?

设计了很多方法,但是一直未解决。原因就是系统在saveas之前会对文档名首先自检,如果存在就弹出是否覆盖的对话框,点是,自己的程序可以继续。点否,后续的程序会出错。我想知道能否将系统自带的重名自检给关掉?
主程序思路是这样的:点击“另存文档”后(自己做的一个控件)。thisworkbook命名,如果有重名就弹出对话框,提示重名,点击是,覆盖;否,弹出另存的dialog;取消,退出程序。我遇到的关键问题是,在程序执行到弹出消息对话框之前,系统的重名覆盖提示就开始工作了,会弹出系统提示框,执行不覆盖后续操作失效。在加入application.displayalter=false,只是不显示系统警告,但警告会默认执行为选择是,直接覆盖操作。求高手指点...
我想关掉系统的自检,有没有方法?

可以
1、取消自己判断是否重名的程序段,直接使用系统的功能。
或者
2、先让程序dir一下,如果重名,弹出自己的处理对话框,通过
覆盖——先删除重名文件,再保存现文件,
另存——调用系统另存对话框(好像是savecopyas那个),
达到目的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-19
先dir检测文件是否存在就是了!
相似回答