返回列表 上一主題 發帖

[發問] 請教如何不用 FOR迴圈,快速的刪掉特定的列?

[發問] 請教如何不用 FOR迴圈,快速的刪掉特定的列?

請教如何不用 FOR迴圈,快速的刪掉特定的列和多個特定的列?
目前是使用  FOR 迴圈,但時間太長,有更好、更聰明的方法嗎?
Intersect 方法 可以辨的到的嗎???

Sub 看青木()
AAA = Range("B65536").End(xlUp).Row
For x = 2 To AAA
d = Cells(x, 2)
     If Cells(x, 2) <> 1 Then '
        Rows(x).Delete
        x = x - 1
        AAA = Range("B65536").End(xlUp).Row
        If x >= AAA Then Exit For
     End If
Next x
End Sub
================================================
Sub 看阿久津等五人()
AAA = Range("B65536").End(xlUp).Row
For x = 2 To AAA
d = Cells(x, 2)
     If Cells(x, 2) = 1 Or Cells(x, 2) = 3 Or Cells(x, 2) = 5 Or Cells(x, 2) = 7 Or Cells(x, 2) = 9 Then '
        Rows(x).Delete
        x = x - 1
        AAA = Range("B65536").End(xlUp).Row
        If x >= AAA Then Exit For
     End If
Next x
End Sub

謝謝指教,感恩~~~各位前輩~~!  :'(



問題.rar (8.34 KB)

本帖最後由 yen956 於 2014-5-24 04:49 編輯

回復 1# ji12345678
我的方法還是用 For next
但, 倒過來刪除, 可省很多程式列, 可省一些時間
  1. Sub 看青木()
  2.     AAA = Range("B65536").End(xlUp).Row
  3.     For x = AAA To 2 Step -1
  4.         If Cells(x, 2) <> 1 Then '
  5.             Rows(x).Delete
  6.         End If
  7.     Next x
  8. End Sub
  9. '================================================
  10. Sub 看阿久津等五人()
  11.     AAA = Range("B65536").End(xlUp).Row
  12.     For x = AAA To 2 Step -1
  13.     d = Cells(x, 2)
  14.     If d = 1 Or d = 3 Or d = 5 Or d = 7 Or d = 9 Then '
  15.         Rows(x).Delete
  16.     end if
  17.     Next x
  18. End Sub
複製代碼

TOP

本帖最後由 yen956 於 2014-5-24 05:01 編輯

回復 1# ji12345678 [
用自動篩選如何?
(又可保有原有資料)

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題