| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1841 人关注过本帖
标题:Excel VBA删除CAD文件中指定区域的对象
只看楼主 加入收藏
wxliuguangyu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
Excel VBA删除CAD文件中指定区域的对象
想通过Excel VBA宏工作自动删除CAD文件中指定区域中的对象,试了两天都没用成功。
Sub sel000()
Dim sel1 As AcadSelectionSet
Dim p1(0 To 2) As Double
Dim p2(0 To 2) As Double
p1(0) = 0: p1(1) = 0: p1(2) = 0
p2(0) = 300: p2(1) = 300: p2(2) = 0
Mode = acselectionsetcrossing
Set sel1 = ThisDrawing.SelectionSets.Add("sel3") '新建一个选择集
Call sel1.Select(Mode, p1, p2)
For Each E in Sel1
  E.delete
next
Sel.delete
End Sub
在主程序运行到该子程序时 提示“Object required”

本人是菜鸟不知道以上命名是CAD VBA的还是Excel VBA的,是否可以在EXCEL VBA中这样使用

跪求大神回复,

搜索更多相关主题的帖子: required Object 主程序 子程序 Excel 
2015-11-01 20:10
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:20 
你是在Excel中的话,需要先创建CAD对象,Set AcadApp = CreateObject("AutoCad.Application")。你报错估计是这个问题
直接出现Thisdrawing是不对的,除非你是全局变量,而且在其他地方赋值了。下面是一个例子(靠来的,我现在很少用CAD的二次开发)
程序代码:
Dim ACADAPP As AcadApplication

Function chkCAD() As Boolean
    '连接AutoACD,有就并入,无就开启一个
    On Error Resume Next
    Set ACADAPP = GetObject(, "AUTOCAD.APPLICATION")
    If Err Then
        Err.Clear
        Set ACADAPP = CreateObject("AUTOCAD.APPLICATION")
        If Err Then
            'MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD 2000")
            chkCAD = False
            Exit Function
        End If
    End If
    ACADAPP.Visible = True
    chkCAD = True
End Function

Sub GetObjInSet()
    
    Dim ThisDrawing As Object
    Dim R As Object
    Dim A
    If Not chkCAD Then
        MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD 2000")
        Exit Sub
    End If
    Set ThisDrawing = ACADAPP.ActiveDocument.ModelSpace
    
    For Each R In ThisDrawing
        A = R.StartPoint
    Next
End Sub
2015-11-02 09:37
wxliuguangyu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-1
收藏
得分:0 
回复 2楼 xiangyue0510
非常感谢,我先试试。
2015-11-02 12:34
wxliuguangyu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-1
收藏
得分:0 
For Each E in Sel1
   E.delete
 next
 Sel.delete     ''Sel1.delete 少敲了个1,
 End Sub
2015-11-03 13:32
快速回复:Excel VBA删除CAD文件中指定区域的对象
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015806 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved