台州网站设计飞速,书法网站建站目标,网站建设合同的性质,文化品牌建设Select Case True 是一个常见的VBA编程技巧#xff0c;用于在多个条件之间进行选择。具体来说#xff0c;Select Case True 语句的每个 Case 语句都包含一个布尔表达式#xff0c;这些表达式会逐个与 True 进行比较。当其中一个表达式的结果为 True 时#xff0c;对应的代码…Select Case True 是一个常见的VBA编程技巧用于在多个条件之间进行选择。具体来说Select Case True 语句的每个 Case 语句都包含一个布尔表达式这些表达式会逐个与 True 进行比较。当其中一个表达式的结果为 True 时对应的代码块将被执行。Select Case True 示例每个 Case 语句中的表达式 ent.ObjectName Like *Line 和 ent.ObjectName Like *Circle 都会返回布尔值 (True 或 False)。Select Case True 将这些布尔值与 True 进行比较并执行匹配的代码块。
我们选择图形空间中第一个图元:
Dim ent As AcadEntity
Set ent ThisDrawing.ModelSpace.Item(0) 不区分大小写的匹配
Select Case LCase(ent.ObjectName) Case acdbline MsgBox This is a Line Case acdbcircle MsgBox This is a Circle Case Else MsgBox This is some other type of object
End Select Select Case True Case ent.ObjectName Like *line MsgBox This is a Line Case ent.ObjectName Like *circle MsgBox This is a Circle Case Else MsgBox This is some other type of object
End Select InStr 函数
If InStr(1, ent.ObjectName, Line, vbTextCompare) 0 Then MsgBox This is a Line
ElseIf InStr(1, ent.ObjectName, Circle, vbTextCompare) 0 Then MsgBox This is a Circle
Else MsgBox This is some other type of object
End If
如果你不指定 compare 参数InStr 默认区分大小写。使用 vbTextCompare 参数可以使 InStr 不区分大小写。以下是代码以及解释Dim ent As AcadEntity
Set ent ThisDrawing.ModelSpace.Item(0) Select Case True Case ent.ObjectName Like *Line MsgBox This is a Line Case ent.ObjectName Like *Circle MsgBox This is a Circle Case Else MsgBox This is some other type of object
End SelectSelect
Case True启动一个 Select Case 结构将每个 Case 表达式的结果与 True 进行比较。Case ent.ObjectName Like *Line如果 ent.ObjectName 包含 Line则此表达式为 True将执行 MsgBox This is a Line。Case ent.ObjectName Like *Circle如果 ent.ObjectName 包含 Circle则此表达式为 True将执行 MsgBox This is a Circle。Case Else如果前面的条件都不满足将执行 MsgBox This is some other type of object。
注意事项
通配符匹配Like 运算符允许使用通配符进行匹配。星号 (*) 匹配零个或多个字符问号 (?) 匹配单个字符。在你的代码中*Line 和 *Circle 都是合法的用法。大小写敏感Like 运算符在VBA中默认是不区分大小写的。所以即使 ObjectName 的值是 acdbLINE 或 ACDbcircle你的匹配依然会成功。