明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1309|回复: 4

[求助]帮我看一下哪里错了

[复制链接]
发表于 2007-1-1 07:44:00 | 显示全部楼层 |阅读模式

Public Sub changeallname()
Dim objlayer As AcadLayer
Dim i As Integer
For Each objlayer In ThisDrawing.Layers
If StrComp(Left$(objlayer.Name, 2), "图层") = 0 Then
i = i + 1
End If
Next objlayer
Debug.Print "有" & i&; "个图层需要修改名"
End Sub

刚学VBA,顺便给我讲讲strcomp这个函数的用法。

谢谢!

发表于 2007-1-1 09:15:00 | 显示全部楼层

Debug.Print "有" & i&; "个图层需要修改名"
这句中,i和后面的&必须要有分隔,然后分号去掉。

另外,如果只是对普通字符串进行比较,只需要用=号来判断,并不需要用到StrComp来判断。

也就是可以写成:

If Left(objlayer.Name, 2)="图层" Then

 楼主| 发表于 2007-1-1 18:26:00 | 显示全部楼层
照你的改完后,执行,怎末没打印出“有?个图层需要修改”?是不是应该出现个对话框,怎末没有啊?
发表于 2007-1-1 22:02:00 | 显示全部楼层
这是VBA基础知识的问题。
Debug.Print是用于在调试窗口中显示内容。如果需要使用对话框显示,要使用Msgbox函数。
 楼主| 发表于 2007-1-1 22:18:00 | 显示全部楼层

明白了,是在“视图”的“立即窗口”里,由于刚刚接触VBA,对它还很陌生,见笑了。

多谢MCCAD的热心帮助!

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

本版积分规则

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

GMT+8, 2024-11-26 21:29 , Processed in 0.168129 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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