返回列表 上一主題 發帖

篩選快接近1萬筆的資料速度超慢

篩選快接近1萬筆的資料速度超慢

這個需求是這樣

這是篩選條件  有一個篩選的區間 對應站別
如下圖:
1.jpg

用這個篩選的條件去篩選下表中指定的數據是否在這個條件的區間中

然後填入對應的站別
如下圖:


這張圖的編號是要篩選的值要根據篩選的條件 填入相對應的站別到代號中

資料筆數一千多行的時候 速度很快沒什麼問題 但當數據到接近一萬行時 速度就變得很慢

以下是我的代碼  篩選的條件有增加的需求性 所以我將程式設計如下 請各位過目
  1. Application.ScreenUpdating = False
  2. Dim 共幾筆資料, 辨識資料起始點, 辨識資料末點, 累加辨識資料數 As Integer: Dim 值1, 值2, 值3 As String

  3. If Not TextBox1.Text = "" And Not TextBox2.Text = "" Then
  4. 第幾筆資料 = 3: 值1 = TextBox1.Text & 第幾筆資料: 辨識資料起始點 = 40: 辨識資料末點 = 辨識資料起始點: 累加辨識資料數 = 辨識資料起始點: 值3 = "C" & 辨識資料末點

  5. Do Until Sheets("1012記事").Range(值3).Value = ""
  6. 辨識資料末點 = 辨識資料末點 + 1
  7. 值3 = "C" & 辨識資料末點
  8. Loop


  9. Dim 起, 訖 As String
  10. Do Until Sheets("會計帳").Range(值1).Value = ""

  11. 值2 = TextBox2.Text & 第幾筆資料: 累加辨識資料數 = 辨識資料起始點


  12. Do Until 累加辨識資料數 = 辨識資料末點
  13. 起 = "A" & 累加辨識資料數: 訖 = "B" & 累加辨識資料數
  14. If (Sheets("1012記事").Range(起).Value <= (Sheets("會計帳").Range(值1).Value)) Then
  15. If ((Sheets("會計帳").Range(值1).Value) <= Sheets("1012記事").Range(訖).Value) Then
  16. 'Sheets("會計帳").Range(值2) = Sheets("1012記事").Range("C" & 累加辨識資料數): Exit Do
  17. Sheets("1012記事").Range("C" & 累加辨識資料數).Copy Destination:=Sheets("會計帳").Range(值2): Exit Do
  18. End If
  19. End If
  20. 累加辨識資料數 = 累加辨識資料數 + 1
  21. Loop

  22. '========================================================================
  23.    

  24. '=====================================================================================
  25. 第幾筆資料 = 第幾筆資料 + 1: 值1 = TextBox1.Text & 第幾筆資料
  26. Sleep 100

  27. Loop
  28. MsgBox ("辨識工作完成")
複製代碼
以下是我設計的人機介面:

f.jpg

請問這代碼要怎麼改 才能加快速度呢? 超困擾的..

利用excel與sql功能,就能改變這些!不用這麼麻煩!即使是excel 2003 也輕鬆做到

例如:http://blog.bestdaylong.com/2013/09/excelsql.html

sql 可以多個條件,速度又快,資料數百萬筆也行…回復 1# ctjh900801

TOP

不好意思 可以請joey大大提供範例檔嗎? 我在你的blog 找不到這個範例檔 XD

TOP

回復 3# ctjh900801

這�媯鳩A參考

http://forum.twbts.com/thread-10758-1-1.html

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題