English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我丟進listbox內的資料中有幾筆是重複的
我的程式碼如下執行後會有\"引數錯誤\"的訊息
這是什麼意思 該怎麼解決呢?

i = 0
Do
j = i + 1
Do
If List1.List(i) = List1.List(j) Then
List1.RemoveItem List1.List(j)
End If
j = j + 1
Loop Until j > List1.ListCount - 1
i = i + 1
Loop Until i > List1.ListCount - 2

2006-07-15 09:22:40 · 2 個解答 · 發問者 東儒 1 in 電腦與網際網路 程式設計

呵呵~~~我想出來了!
i = 0
Do
j = i + 1
Do
If ListBox1.List(i) = List1.List(j) Then
ListBox2.AddItem List1.List(j)
ListBox1.RemoveItem (j)
j = j - 1 '若第三四筆相同,則刪除第四筆後再比較遞補為第四筆的資料
End If
j = j + 1
Loop Until j > List1.ListCount - 1
i = i + 1
Loop Until i > List1.ListCount - 2

2006-07-15 10:35:13 · update #1

2 個解答

你剛想出來的方法在資料筆數小的時候還OK,如果資料量很大, 在數百筆以上的時候, 直接在listbox 裡面處理速度會變很慢,建議可用一個for 迴圈把所有筆數存進一個陣列, 然後把list1.clear 掉在陣列裡面把重覆內容刪除之後, 再用一個for 迴圈把資料加回去listbox,二者的速度差異會大到您難以想像.

2006-07-15 12:55:10 · answer #1 · answered by 憂鬱的貢丸湯 5 · 0 0

Private Sub Command1_Click()Dim I As Integer, J As Integer    For I = List1.ListCount - 1 To 0 Step -1        For J = I - 1 To 0 Step -1            If List1.List(I) = List1.List(J) Then List1.RemoveItem (J)        Next    NextEnd Sub

2006-07-15 20:51:27 · answer #2 · answered by W.J.S. 7 · 0 0

fedest.com, questions and answers