明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2681|回复: 6

请教高手,我成功获得了DVB工程对象,为什么不能保存该宏工程文件的修改啊

[复制链接]
发表于 2014-5-11 11:53 | 显示全部楼层 |阅读模式
请教高手,我成功获得了DVB工程对象,为什么不能保存该宏工程文件的修改啊?即“DVBDX.Save”无效
Function 获得列表框指定的宏工程对象()
    On Error Resume Next
    Dim 列表框选中文档名, HGCWZMC As String, I
    列表框选中文档名 = ListBox1.List(ListBox1.ListIndex, 1)
    If IsNull(列表框选中文档名) Or 列表框选中文档名 = "" Then
        MsgBox "没有在列表框中选中任何一个宏工程文件名"
    Exit Function
    End If
    Dim objIDE As Object
    Set objIDE = Application.VBE
    For I = 0 To objIDE.vbprojects.Count - 1
            HGCWZMC = objIDE.vbprojects(I + 1).Filename '这是获得宏工程文件的完整名称如“D:\00邓细木CAD插件汇总\CAD2005中C盘的Support菜单文件以日期为名保存于此\2012-03-18-17-12(菜单文件第一次改在默认的同菜单文件的同一文件夹SUPPORT下)\邓细木的宏DXM.dvb”
            If HGCWZMC = 列表框选中文档名 Then
                    Set 获得列表框指定的宏工程对象 = objIDE.vbprojects(I + 1)
                    Exit Function
            End If
            Rem Debug.Print objIDE.vbprojects(i + 1).Name'这是获得ACADPROJECT的名称,属内置名
    Next
End Function

Private Sub CommandButton640_Click()
On Error Resume Next
Dim DVBDX As Object '即为DVB宏工程对象
Set DVBDX = 获得列表框指定的宏工程对象()
DVBDX.Save
End Sub
发表于 2014-5-11 17:59 | 显示全部楼层
vb中有这个方法,vba中没有这个方法的
 楼主| 发表于 2014-5-12 08:48 | 显示全部楼层
wxd20130610 发表于 2014-5-11 17:59
vb中有这个方法,vba中没有这个方法的

老师,你告诉我是不可能做到,还是可能做到,只是我的代码不对。?如果是不可能做到保存功能,则我就不再操心了。
发表于 2014-5-12 16:44 | 显示全部楼层
Set ThisDrawing.Application.VBE.activevbproject = ThisDrawing.Application.VBE.vbprojects(PrjName)
ThisDrawing.Application.VBE.CommandBars("菜单条").Controls(1).Controls(3).Execute

点评

我试了,保存不了  发表于 2014-5-12 19:00
谢谢!有时间我试试  发表于 2014-5-12 17:48
 楼主| 发表于 2014-5-12 18:59 | 显示全部楼层
我试了,保存不了。“PrjName”到底指什么?是“D:\00邓细木CAD插件汇总\CAD每天都在使用的C盘深处的2005SUPPORT文件夹\CJ001986序号编号相关插件汇总命令HAZAOTIHUAN201310191657354\CJ001288批量改编号.dvb”还是“CJ001288批量改编号.dvb”,还是指其它?
发表于 2014-5-12 20:02 | 显示全部楼层
PrjName是你要保存的dvb工程文件全称

点评

我试过,无效。是不是要加载什么引用才可以?  发表于 2014-5-13 07:51
发表于 2014-5-13 09:54 | 显示全部楼层
不应该,我试过在一个dvb中控制保存另一个dvb,ThisDrawing.Application.VBE.CommandBars("菜单条").Controls(1).Controls(3).Execute这个命令就是点击菜单栏上的保存按钮,因此需要将要保存的dvb置前,但一个问题是这个命令是异步执行的,所以一般将这个命令放在程序的最后面执行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 00:36 , Processed in 0.321944 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表