標題:
篩選快接近1萬筆的資料速度超慢
[打印本頁]
作者:
ctjh900801
時間:
2013-10-21 19:28
標題:
篩選快接近1萬筆的資料速度超慢
這個需求是這樣
這是篩選條件 有一個篩選的區間 對應站別
如下圖:
[attach]16406[/attach]
用這個篩選的條件去篩選下表中指定的數據是否在這個條件的區間中
然後填入對應的站別
如下圖:
[attach]16407[/attach]
這張圖的編號是要篩選的值要根據篩選的條件 填入相對應的站別到代號中
資料筆數一千多行的時候 速度很快沒什麼問題 但當數據到接近一萬行時 速度就變得很慢
以下是我的代碼 篩選的條件有增加的需求性 所以我將程式設計如下 請各位過目
Application.ScreenUpdating = False
Dim 共幾筆資料, 辨識資料起始點, 辨識資料末點, 累加辨識資料數 As Integer: Dim 值1, 值2, 值3 As String
If Not TextBox1.Text = "" And Not TextBox2.Text = "" Then
第幾筆資料 = 3: 值1 = TextBox1.Text & 第幾筆資料: 辨識資料起始點 = 40: 辨識資料末點 = 辨識資料起始點: 累加辨識資料數 = 辨識資料起始點: 值3 = "C" & 辨識資料末點
Do Until Sheets("1012記事").Range(值3).Value = ""
辨識資料末點 = 辨識資料末點 + 1
值3 = "C" & 辨識資料末點
Loop
Dim 起, 訖 As String
Do Until Sheets("會計帳").Range(值1).Value = ""
值2 = TextBox2.Text & 第幾筆資料: 累加辨識資料數 = 辨識資料起始點
Do Until 累加辨識資料數 = 辨識資料末點
起 = "A" & 累加辨識資料數: 訖 = "B" & 累加辨識資料數
If (Sheets("1012記事").Range(起).Value <= (Sheets("會計帳").Range(值1).Value)) Then
If ((Sheets("會計帳").Range(值1).Value) <= Sheets("1012記事").Range(訖).Value) Then
'Sheets("會計帳").Range(值2) = Sheets("1012記事").Range("C" & 累加辨識資料數): Exit Do
Sheets("1012記事").Range("C" & 累加辨識資料數).Copy Destination:=Sheets("會計帳").Range(值2): Exit Do
End If
End If
累加辨識資料數 = 累加辨識資料數 + 1
Loop
'========================================================================
'=====================================================================================
第幾筆資料 = 第幾筆資料 + 1: 值1 = TextBox1.Text & 第幾筆資料
Sleep 100
Loop
MsgBox ("辨識工作完成")
複製代碼
以下是我設計的人機介面:
[attach]16408[/attach]
請問這代碼要怎麼改 才能加快速度呢? 超困擾的..
作者:
joey0415
時間:
2013-10-22 11:20
利用excel與sql功能,就能改變這些!不用這麼麻煩!即使是excel 2003 也輕鬆做到
例如:http://blog.bestdaylong.com/2013/09/excelsql.html
sql 可以多個條件,速度又快,資料數百萬筆也行…
回復
1#
ctjh900801
作者:
ctjh900801
時間:
2013-10-24 08:32
不好意思 可以請joey大大提供範例檔嗎? 我在你的blog 找不到這個範例檔 XD
作者:
joey0415
時間:
2013-11-7 10:59
回復
3#
ctjh900801
這�媯鳩A參考
http://forum.twbts.com/thread-10758-1-1.html
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)