vba中Item、IsEmpty方法的应用——批量删除CAD图层

Item 方法

 利用位置或键返回 Collection 对象的指定成员。

语法object.Item(index)

Item 方法的语法具有下列对象限定符和部分:

部分描述
object必要。对象表达式,其值为“应用于”列表中对象。
index必要。为一表达式,指定集合中成员的位置。如果是数值表达式,则 index 必须是从 1 到集合 Count 属性值之间的数值。如果是字符串表达式,则当加入一被引用的成员到集合时,index 必须和 key 参数对应。

如果 index 值无法与集合的任何现有成员匹配,就会导致错误发生。

Item 方法是集合的缺省方法。因此,以下两行程序代码等价:

Print MyCollection(1)
Print MyCollection.Item(1)

 批量删除除 0 层和 "jzd"以外的图层为例,代码如下:

Sub 删除多余图层()
'yngqq:443440204
On Error Resume Next
Dim lay As AcadLayer
For Each lay In ThisDrawing.Layers
    If lay.Name <> "0" And lay.Name <> "jzd" Then
        lay.Delete
    End If
Next
End Sub

当图层被其他对象参照时,无法删除

删除某个图层代码(isempty)

IsEmpty 函数

返回 Boolean 值,指出变量是否已经初始化。

语法IsEmpty(expression)

必要的 expression 参数是一个 Variant,包含一个数值或字符串表达式。但是,因为 IsEmpty 被用来确定个别变量是否已初始化,所以 expression 参数通常是单一变量名。

说明

如果变量未初始化或已明确设置为 Empty,则 IsEmpty 返回 True;否则返回 False。如果 expression 含有多个变量,则 IsEmpty 总是返回 FalseIsEmpty 只返回对 variant 表达式有意义的信息。

 Sub 删除某一个图层()
'yngqq:443440204
On Error Resume Next
Dim objlayer As AcadLayer
Set objlayer = ThisDrawing.Layers("JZP")
a = IsEmpty(objlayer)
If Not IsEmpty(objlayer) Then
objlayer.Delete
End If
End Sub

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值