本帖最后由 作者 于 2008-11-1 19:19:44 编辑
最近在写一个VBA宏,实现的功能是批处理删除指定文件中指定位置的文字对象,程序运行以及运行结果都没有问题,但是在运行后发现在高版本的CAD运行后,低版本的CAD无法打开经高版本保存(宏自动保存)的文件,如:在Auto CAD 2008中运行完宏的文件,拿到2006版的CAD就打不开,提示“图形文件无效”,但是用2008打开再手动点击“保存”后再拿到2006中就可以打开了(2008已经事先设置为保存为2004格式的dwg文件),请问版主以及各位高人这是怎么回事?我写的这个宏的思路如下: 1、用文档对象的Open函数打开指定文件; 2、获取保存类型,如果不是保存为2004格式,就将其设置为2004格式,代码如下: Dim ACADPref As AcadPreferencesOpenSave Set ACADPref = ThisDrawing.Application.Preferences.OpenSave If ACADPref.SaveAsType <> ac2004_dwg Then ACADPref.SaveAsType = ac2004_dwg 3、执行删除文字的操作; 4、最后保存文档、退出,代码如下: ThisDrawing.Save ThisDrawing.Close 其中思路中的第2步是因为出现上述问题而特意加上去的,本来以为可以搞定,但是谁知道还是不行!!我找了半天也没发现是哪出了问题,不知道大家有没有碰到这类问题?如果有哪位知道解决方法,请赐教,谢谢! |