乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 56|回复: 4

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

[复制链接]

68

主题

177

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 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
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 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

回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2006-4-8 15:41:00 | 显示全部楼层
ThisDrawing.ActiveLayer =ThisDrawing.Layers( str )
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-4-8 16:08:00 | 显示全部楼层
lzh741206斑竹,你的经验很丰富啊,我总是想不起来用简单的方法。。。谢啦!以后改进!
回复

使用道具 举报

68

主题

177

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2006-4-8 17:28:00 | 显示全部楼层
谢谢各位大师,你们太利害了
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 11:19 , Processed in 0.713355 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表