明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1314|回复: 4

变为当前层失败,有没有方法

[复制链接]
发表于 2006-4-8 10:09:00 | 显示全部楼层 |阅读模式

请教大师:

本人编了一个将所选层变为当前层的Vba程式,

可是失败,请了解的朋友指点

Public Sub dq()
Dim ssetobj1 As AcadSelectionSet
Dim icount1 As Integer
icount1 = ThisDrawing.SelectionSets.Count
While (icount1 > 0)
    If ThisDrawing.SelectionSets.Item(icount1 - 1).Name = "yuan" Then
    ThisDrawing.SelectionSets.Item(icount1 - 1).Delete
    End If
    icount1 = icount1 - 1
    Wend
    Set ssetobj1 = ThisDrawing.SelectionSets.Add("yuan")
    ThisDrawing.Utility.Prompt "please select object"
    ssetobj1.SelectOnScreen
  Dim i1 As Integer
  Dim selobj1 As AcadEntity
  On Error Resume Next
      Set selobj1 = ssetobj1.Item(i1)

  Dim str As String
  str = selobj1.Layer
  ThisDrawing.ActiveLayer = str

发表于 2006-4-8 10:51:00 | 显示全部楼层

大哥,ThisDrawing.ActiveLayer是个对象,str是个字符串,看你最后的三行,应该改为:

 Dim str As String
 str = selobj1.layer
 Dim layer As AcadLayer
 For Each layer In ThisDrawing.Layers
    If layer.Name = str Then ThisDrawing.ActiveLayer = layer
 Next

 

发表于 2006-4-8 15:41:00 | 显示全部楼层
ThisDrawing.ActiveLayer =ThisDrawing.Layers( str )
发表于 2006-4-8 16:08:00 | 显示全部楼层
lzh741206斑竹,你的经验很丰富啊,我总是想不起来用简单的方法。。。谢啦!以后改进!
 楼主| 发表于 2006-4-8 17:28:00 | 显示全部楼层
谢谢各位大师,你们太利害了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 04:39 , Processed in 0.163658 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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