gucci218 发表于 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这个函数的用法。
谢谢!

mccad 发表于 2007-1-1 09:15:00

Debug.Print "有" & i&; "个图层需要修改名"
这句中,i和后面的&必须要有分隔,然后分号去掉。
另外,如果只是对普通字符串进行比较,只需要用=号来判断,并不需要用到StrComp来判断。
也就是可以写成:
If Left(objlayer.Name, 2)="图层" Then

gucci218 发表于 2007-1-1 18:26:00

照你的改完后,执行,怎末没打印出“有?个图层需要修改”?是不是应该出现个对话框,怎末没有啊?

mccad 发表于 2007-1-1 22:02:00

这是VBA基础知识的问题。
Debug.Print是用于在调试窗口中显示内容。如果需要使用对话框显示,要使用Msgbox函数。

gucci218 发表于 2007-1-1 22:18:00

明白了,是在“视图”的“立即窗口”里,由于刚刚接触VBA,对它还很陌生,见笑了。
多谢MCCAD的热心帮助!
页: [1]
查看完整版本: [求助]帮我看一下哪里错了