Board logo

標題: [發問] 請教如何不用 FOR迴圈,快速的刪掉特定的列? [打印本頁]

作者: ji12345678    時間: 2014-5-23 22:28     標題: 請教如何不用 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

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



[attach]18353[/attach]
作者: yen956    時間: 2014-5-24 04:45

本帖最後由 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
複製代碼

作者: yen956    時間: 2014-5-24 04:54

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

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





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)