看板 Office 關於我們 聯絡資訊
軟體:excel 2007以上 版本: 2007以上 我要把一整段有符合某字眼的刪除 Sub eachssdelete() Dim ss As Object lastrow = Range("A65536").End(xlUp).Row For Each ss In Range("A1:A" & lastrow) If ss.Text Like "*海外分行*" Or ss.Text Like "*機構名稱*" _ Or ss.Text Like "*工作表*" Then Rows(ss.Row).Delete End If Next ss End Sub 但是我都要按好幾次巨集執行才會刪光 不知道那邊還要改? 原始檔案:: https://drive.google.com/open?id=0BwCgrQhGgaw7RXByS2kxRnFjWTQ 巨集如下: Sub eachssdelete() Dim ss As Object lastrow = Range("A65536").End(xlUp).Row For Each ss In Range("A1:A" & lastrow) If ss.Text Like "*海外分行*" Or ss.Text Like "*機構名稱*" _ Or ss.Text Like "*工作表*" Then Rows(ss.Row).Delete End If Next ss End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.67.77 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1496730852.A.51C.html
Linkey: 執行 for 迴圈中刪除 row 會改變 next ss 的原始位置 06/06 15:32
Linkey: 當有有關鍵字上下相連時,下一個就會跳過For迴圈不會執行 06/06 15:35
ptguitar: 所以說我把所有的row位置先讀出來再一起刪才對? 06/06 15:37
soyoso: 以for..next反序step為負的方式 06/06 16:01
感謝S大 真的要這樣寫 後來可以 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 ※ 編輯: ptguitar (60.250.67.77), 06/06/2017 16:21:40
waiter337: 由屁股往回刪 06/06 19:28
waiter337: 如果照原來的方式,就必需插入一個假設刪除該行,就得在 06/06 19:29
waiter337: 該行重新再次掃瞄一次,直到沒有like才可以進行下一行 06/06 19:29
LBJisGod5566: 不錯欸 受用 06/07 20:23