Re: [算表] vba迴圈刪除類似字眼資料?

作者: diskk (oi)   2018-02-26 21:49:19
建議你把range改成cells
因為你用range("A" & i)
程式每一次要幫你合併文字,還要再轉成絕對座標
這會浪費很多時間
我寫了一小段測試程式
你可以比較看看時間差異
Sub TestPerformance()
Dim st As Date
Dim et As Date
Dim i As Long
st = Now()
For i = 1 To 1000000
Range("A" & i) = i
Next
et = Now()
Dim it1 As Integer
it1 = DateDiff("s", st, et)
st = Now()
For i = 1 To 1000000
Cells(i, 1) = i
Next
et = Now()
Dim it2 As Integer
it2 = DateDiff("s", st, et)
MsgBox "Range = " & it1 & vbCrLf & "Cells = " & it2
End Sub
※ 引述《ptguitar (佩蒂吉他)》之銘言:
: 上次有問類似問題
: 現在遇到困難就是
: 遇到超大量資料 數十萬筆
: 而要刪除的條件很多
: 速度很慢
: 不知道有什麼更快速寫法
: ===
: ※ 引述《ptguitar (佩蒂吉他)》之銘言:
: Sub test001()
: Dim YY, XX, ZZ
: YY = "*海外分行*"
: XX = "*機構名稱*"
: ZZ = "*工作表*"
: For i = [A65536].End(xlUp).Row To 1 Step -1
: If Range("A" & i).Text Like YY Or Range("A" & i).Text Like XX Or Range("A"
: & i).Text Like ZZ Then
: Rows(i).Delete
: End If
: Next
: End Sub

Links booklink

Contact Us: admin [ a t ] ucptt.com