vba如何遍历固定区域内的文字实体?
<p>大虾请帮忙,我想通过程序自动选择区域,遍历里面的内容,谢谢。</p> 用选择集 在 <autocad vba 二次开发教程>中有类似实列 <p>请问块参照的过滤名称是什么?</p> "INSERT" <p>这是我开发的程序的关于这方面的模块</p><p>基本思想,1、创建空白选择集。2、利用组码过滤选区。获得文本图元。3遍历该选择集。</p><p>Sub SL() '实例过程<br/>Dim ss As AcadSelectionSet<br/>Dim OBJlayer As AcadLayer<br/>Dim layer As AcadLayers<br/>Dim FilterType(3) As Integer<br/>Dim FilterData(3) As Variant<br/>Dim TextI As AcadText<br/>Dim T As Integer<br/>Dim XT1 As String<br/>Dim XT2 As String<br/>' 创建空白选择集<br/> Set ss = CreatSSet ''这里我写了公用模块的,在后面有函数。<br/>FilterType(0) = -4<br/>FilterData(0) = "<or"<br/>FilterType(1) = 0<br/>FilterData(1) = "TEXT"<br/>FilterType(2) = 0<br/>FilterData(2) = "MTEXT"<br/>FilterType(3) = -4<br/>FilterData(3) = "or>" '这里让选择集可以选择到TEXT,或者Mtext,如果只要选择text将更简单,创建1维组码,保留0这组项目就可以<br/> 'ss.Select acSelectionSetAll, , , FilterType, FilterData '选区方式为全选.如果使用在屏幕获取选区使用如下语句<br/>ss.SelectOnScreen FilterType, FilterData<br/>Varret = ThisDrawing.Utility.GetInteger("请要被替换的内容:")<br/> XT1 = Varret<br/>Varret = ThisDrawing.Utility.GetInteger("请要替换成的内容:")<br/> XT2 = Varret<br/>T = Len(XT1)<br/>'遍历选择集过程<br/>For i = 0 To ss.Count - 1<br/> Set TextI = ss(i) '把选择集内图元赋给textI,实现对某图元的操作。<br/> TextName = TextI.TextString<br/> If Left(TextName, T) = XT1 And TextI.Rotation = 0 Then<br/> TextI.TextString = XT2 & Right(TextName, Len(TextName) - T)<br/> End If<br/>Next i<br/>'这个过程实现了替换文本前几位数字的功能。多种原因,删除了部分内容,测试通过。<br/>End Sub</p><p>'以下为创建公用选择集函数</p><p>Function CreatSSet() As AcadSelectionSet<br/> On Error Resume Next<br/> ThisDrawing.SelectionSets("XZJ").Delete<br/> Set CreatSSet = ThisDrawing.SelectionSets.add("XZJ")<br/>End Function</p> <p>谢谢各位,我已经学会了。</p>
页:
[1]