返回列表 上一主題 發帖

查詢如何陣列,加快化?

查詢如何陣列,加快化?

If [c1].Value = "" Then MsgBox "填寫key", , "提示 Exit Sub"
Sheets("search").Rows("4:10000").ClearContents
Dim rnga As Range, rw%, arr
With Sheets("search")
    For Each rnga In Sheets("data").UsedRange
    Set rnga = rnga.Find([c1])
        r = .UsedRange.Rows.Count + 1
        If Not rng Is Nothing Then
            .Cells(r, 1).Resize(1, 6).Value = Sheets("data").Cells(rnga.Row, 1).Resize(1, 6).Value
        End If
    Next
因數據有數千筆,若查詢結果數據過多,會卡很久,請問如何加快?
希望支持!

本帖最後由 s7659109 於 2019-3-8 15:54 編輯

需求:在工作表search c1 key 入關鍵字可全部欄位查詢(從工作表data),但筆數少ok,但筆數太多,會卡,請問該如何改?

1080308search.zip (20.22 KB)

希望支持!

TOP

If InStr(mystr, Sheets("search").[C1]) > 0 Then
  s = s + 1
   ReDim Preserve Ar(s)
   Ar(s) = Split(mystr, Chr(10))
    End If
問題:有看過 s = s + 1放在這個位置,但本代碼出現型態不符,差異為何?
另請教 若改成在data工作表直接查詢,以事件方式,做到隱藏(不是查詢資料),縮放功能。

1080310search事件.rar (16.15 KB)

希望支持!

TOP

謝謝,Hsieh的解說。
希望支持!

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題