1 '定义过滤器 2 3 Dim pType, pData 4 5 6 7 'BuildFilter pType, pData, 0, "BlockReference", 8, "GCD", 62, 3 '建立图层是JZD?颜色为绿色的多段线过滤器 8 9 10 11 12 13 BuildFilter pType, pData, 8, "GCD" 14 15 '定义选择集 16 17 18 19 Dim sset As AcadSelectionSet 20 21 Set sset = CreateSelectionSet 22 23 ' 24 25 26 27 '根据以上指定的过滤器建立选择集 28 29 30 31 sset.Clear 32 33 sset.Select acSelectionSetAll, , , pType, pData 34 35 36 37 Dim pEntity As Object 38 39 Dim pBlock As AcadBlockReference 40 41 Dim pAttr As Variant 42 43 44 45 Dim pCoords As Variant 46 47 48 49 For Each pEntity In sset 50 51 If pEntity.ObjectName = "AcDbBlockReference" Then 52 53 Set pBlock = pEntity 54 55 56 57 If pBlock.Name = "gc200" Then 58 59 pAttr = pBlock.GetAttributes 60 61 For i = 0 To UBound(pAttr) 62 63 pAttr(i).TextString = ChangeH(pAttr(i).TextString) 64 65 Next i 66 67 ElseIf pBlock.Name = "GC022y" Then 68 69 pCoords = pBlock.InsertionPoint 70 71 72 73 If pCoords(2) <> 0 Then 74 75 pCoords(2) = 0 76 77 pBlock.InsertionPoint = pCoords 78 79 End If 80 81 End If 82 83 End If 84 85 Next pEntity 86 87 88 89 sset.Delete 90 91 MsgBox "修改完成"