Re: [算表] vba迴圈刪除類似字眼資料?
※ 引述《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
Rows(i).Delete是一個很花費資源的動作
當行數一多,一行一行慢慢刪就會拖到快當機一樣
比較好的方式是先記好要刪的行數
掃完一遍之後讓電腦一次刪掉
試試:
Sub test001()
Dim YY, XX, ZZ
YY = "*海外分行*"
XX = "*機構名稱*"
ZZ = "*工作表*"
Dim delRng As Range
For i = [A65536].End(xlUp).Row To 1 Step -1
'.xlsx檔行數不只65536喔
'建議可以用Range("A" & Rows.Count).End(xlUp).Row 代替
If Range("A" & i).Text Like YY Or _
Range("A" & i).Text Like XX Or _
Range("A" & i).Text Like ZZ Then
If delRng Is Nothing Then
Set delRng = Rows(i)
Else
Set delRng = Union(delRng, Rows(i))
End If
End If
Next i
delRng.Delete
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.253.86
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1515396924.A.9A1.html
※ 編輯: newacc (122.117.253.86), 01/08/2018 15:42:22
→
01/08 15:46,
8年前
, 1F
01/08 15:46, 1F
→
01/08 15:51,
8年前
, 2F
01/08 15:51, 2F
→
01/08 15:51,
8年前
, 3F
01/08 15:51, 3F
→
01/08 15:52,
8年前
, 4F
01/08 15:52, 4F
→
01/08 15:53,
8年前
, 5F
01/08 15:53, 5F
→
01/08 16:29,
8年前
, 6F
01/08 16:29, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
Office 近期熱門文章
PTT數位生活區 即時熱門文章