<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>qee用</i>在2007-3-19 22:52:56的发言:</b><br/><div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>戏子</i>在2007-3-19 22:49:28的发言:</b><br/><p>汗~~我怎么没有想起用SQL进行筛选呢?</p></div><p>哈,你又忘了,不光筛选,排序也可一并做了.</p></div><p>Sub sanbe()<br/>Application.ScreenUpdating = False<br/>On Error Resume Next<br/>Dim cn As New ADODB.Connection<br/>cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName<br/>t = Timer<br/>n = [b1]<br/>Dim arr(1 To 32768, 1 To 1)<br/>Range("A1:A" & [A65536].End(xlUp).Row).ClearContents<br/>m = 1<br/>For i = 1 To n<br/> For j = 1 To i - 1<br/> arr(m, 1) = j / i<br/> <br/> m = m + 1<br/> Next j<br/>Next i<br/>[a1:a32768] = arr<br/>'//筛选不重复值并按升序排列<br/>Sql = "select f1 from [sheet1$] group by f1"<br/>Sheet1.Range("C1:C" & [C65536].End(xlUp).Row + 1).ClearContents<br/>Sheet1.Range("C1").CopyFromRecordset cn.Execute(Sql)<br/>Sheet1.Range("A1:A" & [A65536].End(xlUp).Row + 1).ClearContents<br/>Sheet1.Range("C1:C" & [C65536].End(xlUp).Row).Cut Sheet1.Range("A1")<br/>Range("A:A").NumberFormatLocal = "# ???/???"<br/>tim = (Timer - t) * 1000<br/>MsgBox "共耗时:" & tim & "毫秒"<br/>cn.Close<br/>Set cn = Nothing<br/>Application.ScreenUpdating = True<br/>End Sub</p><p>VBA跟函数一样,还是思路第一啊 </p><p>不怕做不到,就怕想不到</p><p>这个题目有空还得仔细研究研究</p>[em04][em04]
[此贴子已经被作者于2007-3-19 23:17:25编辑过] |