jkbanana 发表于 2007-12-4 12:43:00

<p>选择集中的顺序不是固定的,当选择集中的物体被更新时,其顺序排列会变化的。</p><p>因此用sset.item(i)来确定物体的顺序似乎不好吧。</p><p>还是用handle属性比较可靠。</p>

兰州人 发表于 2007-12-14 16:08:00

<p>handle属性在实际应用中排序意义不大。</p><p>handle的赋值是按实体写入到AutoCAD的顺序排列。</p><p>1、在现实工作中,人们理解的内容是从左右到右,从上到下的排序过程。</p><p>2、按封闭面域的顺序排序,零部件等。</p><p>3、按内容排序,如材料表的序号等排序。</p>

雪山飞狐_lzh 发表于 2007-12-16 18:45:00

选择集也是一种集合,结果放在选择集、集合或数组中没什么区别

laoliu09 发表于 2007-12-16 21:39:00

<p>进来就为了支持一下飞狐斑竹,我2年前初学VBA的时候,在明经通道问的第一个问题是:"什么是VBA啊?",是飞狐斑竹第一个回答我的!支持!</p>

兰州人 发表于 2007-12-18 16:22:00

<p>排序组合应用</p><p>'不重复排序<br/>Function gg(xm)</p><p>&nbsp;&nbsp;&nbsp; Dim arr, Temp() As String '声明变量<br/>&nbsp;&nbsp;&nbsp; Dim s%, r% '声明单值变量<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next '启动一个错误处理程序<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; r = 0 '初值<br/>&nbsp;&nbsp;&nbsp; s = UBound(xm) '最大下标<br/>&nbsp;&nbsp;&nbsp; ReDim arr(s - 1)<br/>&nbsp;&nbsp;&nbsp; For i = 0 To s '循环<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Temp = Filter(arr, xm(i)) '搜索数组<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If UBound(Temp) = -1 Then '如果未找到<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r = r + 1 '序号,自增1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReDim Preserve arr(1 To r)&nbsp; '定义动态数组大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr(r) = xm(i) '把姓名复制到数组Arr()中。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Debug.Print Arr(r)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp; gg = arr<br/>&nbsp;&nbsp;&nbsp; Debug.Print<br/>End Function</p><p>Sub lll()<br/>&nbsp; Dim xm1(), abc(), Gggg()<br/>&nbsp; xm1 = Array(2, 0, 3, 1, 9, 9, 2, 3, 1, 2, 2, 2, 1, 9, 9, 9, 3)<br/>&nbsp; abc = gg(xm1)<br/>&nbsp; Debug.Print TypeName(abc)<br/>&nbsp; Gggg = Bubble_Sort(abc)<br/>&nbsp; Debug.Print<br/>End Sub</p><p>Function Bubble_Sort(Ary)<br/>&nbsp;&nbsp; Dim aryUBound, i, j<br/>&nbsp;&nbsp; aryUBound = UBound(Ary)<br/>&nbsp;&nbsp; Debug.Print aryUBound<br/>&nbsp;&nbsp; Debug.Print TypeName(Ary)<br/>&nbsp;&nbsp; For ii = 1 To aryUBound<br/>&nbsp;&nbsp;&nbsp;&nbsp; Debug.Print Ary(ii)<br/>&nbsp;&nbsp; Next ii<br/>&nbsp;&nbsp; Debug.Print<br/>&nbsp;&nbsp; For i = 1 To aryUBound<br/>&nbsp;&nbsp;&nbsp;&nbsp; For j = i + 1 To aryUBound<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Ary(i) &gt; Ary(j) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Swap Ary(i), Ary(j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp; Bubble_Sort = Ary</p><p>End Function</p><p>Function Swap(a, b)<br/>&nbsp;&nbsp; Dim tmp<br/>&nbsp;&nbsp; tmp = a<br/>&nbsp;&nbsp; a = b<br/>&nbsp;&nbsp; b = tmp<br/>End Function</p><p></p>
页: 1 [2]
查看完整版本: 选择集内的排序问题(高手都来比试一下)