本帖最后由 wylong 于 2011-10-11 23:52 编辑
- Sub SelectTexts()
- Dim sS As AcadSelectionSet
- Dim fType(0 To 2) As Integer
- Dim fData(0 To 2) As Variant
- Dim AutoSelect As Boolean
-
- '更改变量值 True/False 可以实现自动全选或手动框选
- AutoSelect = True
- On Error Resume Next
- ThisDrawing.SelectionSets("SelectTexts").Delete
- Set sS = ThisDrawing.SelectionSets.Add("SelectTexts")
- On Error GoTo 0
- On Error GoTo ErrHandle
- '创建过滤机制
- fType(0) = 0: fData(0) = "TEXT,MTEXT" '单行或多行文字
-
- '更改下面的文字内容可以实现选择不同的文字
- 'fType(1) = 1: fData(1) = "*碎石*,*沥*" '文字内容-模糊选择
- fType(1) = 1: fData(1) = "碎石,沥" '文字内容-精确选择
-
- fType(2) = 8: fData(2) = "道路" '图层名称
- '选择符合条件的所有图元-单行文字和多行文字
- If AutoSelect Then
- '自动选择方式
- sS.Select acSelectionSetAll, , , fType, fData
- Else
- '提示用户手动选择区域
- sS.SelectOnScreen fType, fData
- End If
-
- If sS.Count = 0 Then Exit Sub
-
- sS.Highlight True
-
- '此处加入你的处理代码
- '....................
- '删除数组
- Erase fType: Erase fData
-
- '删除选择集
- sS.Clear: sS.Delete
- Set sS = Nothing
-
- Exit Sub
- ErrHandle:
- MsgBox Err.Description, vbCritical, "产生了以下错误:"
- Err.Clear
- End Sub
|