wudixiaozi 发表于 2007-3-23 23:22:00

vba如何遍历固定区域内的文字实体?

<p>大虾请帮忙,我想通过程序自动选择区域,遍历里面的内容,谢谢。</p>

雪山飞狐_lzh 发表于 2007-3-24 10:25:00

用选择集

青青20 发表于 2007-3-26 13:49:00

在 &lt;autocad vba 二次开发教程&gt;中有类似实列

StartMe 发表于 2007-3-26 22:24:00

<p>请问块参照的过滤名称是什么?</p>

StartMe 发表于 2007-3-27 22:49:00

"INSERT"

42272846 发表于 2007-3-28 00:40:00

<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/>&nbsp;&nbsp; Set ss = CreatSSet ''这里我写了公用模块的,在后面有函数。<br/>FilterType(0) = -4<br/>FilterData(0) = "&lt;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&gt;"&nbsp;&nbsp; '这里让选择集可以选择到TEXT,或者Mtext,如果只要选择text将更简单,创建1维组码,保留0这组项目就可以<br/>&nbsp;&nbsp;&nbsp; 'ss.Select acSelectionSetAll, , , FilterType, FilterData '选区方式为全选.如果使用在屏幕获取选区使用如下语句<br/>ss.SelectOnScreen FilterType, FilterData<br/>Varret = ThisDrawing.Utility.GetInteger("请要被替换的内容:")<br/>&nbsp;&nbsp;&nbsp; XT1 = Varret<br/>Varret = ThisDrawing.Utility.GetInteger("请要替换成的内容:")<br/>&nbsp;&nbsp;&nbsp; XT2 = Varret<br/>T = Len(XT1)<br/>'遍历选择集过程<br/>For i = 0 To ss.Count - 1<br/>&nbsp;&nbsp;&nbsp; Set TextI = ss(i) '把选择集内图元赋给textI,实现对某图元的操作。<br/>&nbsp;&nbsp;&nbsp; TextName = TextI.TextString<br/>&nbsp;&nbsp;&nbsp; If Left(TextName, T) = XT1 And TextI.Rotation = 0 Then<br/>&nbsp;&nbsp;&nbsp; TextI.TextString = XT2 &amp; Right(TextName, Len(TextName) - T)<br/>&nbsp;&nbsp;&nbsp; End If<br/>Next i<br/>'这个过程实现了替换文本前几位数字的功能。多种原因,删除了部分内容,测试通过。<br/>End Sub</p><p>'以下为创建公用选择集函数</p><p>Function CreatSSet() As AcadSelectionSet<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SelectionSets("XZJ").Delete<br/>&nbsp;&nbsp;&nbsp; Set CreatSSet = ThisDrawing.SelectionSets.add("XZJ")<br/>End Function</p>

wudixiaozi 发表于 2007-3-31 11:31:00

<p>谢谢各位,我已经学会了。</p>
页: [1]
查看完整版本: vba如何遍历固定区域内的文字实体?