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

[原创]Filter高效处理不重复数组

本帖最后由 作者 于 2007-12-18 12:40:21 编辑 <br /><br /> <p>关键语句</p><p>&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/></p><p>Sub ll()</p><p>&nbsp;&nbsp;&nbsp; Dim xm, Arr(), Temp() As String '声明变量<br/>&nbsp;&nbsp;&nbsp; Dim s%, r% '声明单值变量<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next '启动一个错误处理程序<br/>&nbsp;&nbsp;&nbsp; xm = Array(2, 3, 1, 9, 9, 2, 3, 1, 2, 2, 2, 1, 9, 9, 9, 3)<br/>&nbsp;&nbsp;&nbsp; r = 0 '初值<br/>&nbsp;&nbsp;&nbsp; s = UBound(xm) '最大下标<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) '定义动态数组大小<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;&nbsp; Debug.Print Arr(r)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp; Debug.Print<br/>End Sub</p>

style6301 发表于 2007-12-20 16:35:00

<p><font color="#ff0000">有何用处?能否指明?</font></p><p><font color="#ff0000">刚开始学习VBA,以前没有学过VB,只学过True Basic和Pascal</font></p>
页: [1]
查看完整版本: [原创]Filter高效处理不重复数组