返回列表 上一主題 發帖

刪除列之vba寫法

刪除列之vba寫法

求較各位先進
   在 Sheet1內 想 刪除 column c 內 非屬於 cat  之各列 應如何寫
        A      B        C      D
1     23    34    cat     34
2     12    23    dog   23
3     34    12     yy     12
4     45    34    cat     45
5     23    23    dog    23
刪除  2 3 5 Rows  只剩
         A      B        C      D
  1     23    34    cat     34
  2     45    34    cat     45
   thanks

本帖最後由 am0251 於 2011-6-26 16:42 編輯

試一下這個
  1. Sub test()

  2. Dim myRowCount As Integer, Cat As Integer

  3. myRowCount = Range("A1").CurrentRegion.Rows.Count

  4. Cat = 1

  5. For i = 1 To myRowCount

  6. If Range("C" & Cat).Value <> "cat" Then

  7. Rows(Cat).Delete Shift:=xlUp

  8. Else

  9. Cat = Cat + 1

  10. End If

  11. Next i

  12. End Sub
複製代碼
50 字節以內
不支持自定義 Discuz! 代碼

TOP

am0251
  對不起無法看到你的解答是否可再上傳謝謝

TOP

多謝已經在測試再次感謝一列一列刪好像很慢 (因為有很多資料)
         無論如何謝謝

TOP

不會吧?按"F5"再看看~
50 字節以內
不支持自定義 Discuz! 代碼

TOP

那我再試一下別的更快的方法
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 4# jim
  1. Sub Ex()
  2.     Dim Rng As Range, R As Range
  3.     For Each R In Range("A1").CurrentRegion.Rows
  4.         If R.Cells(3) <> "cat" Then If Rng Is Nothing Then Set Rng = R Else Set Rng = Union(Rng, R)
  5.     Next
  6.     Rng.Delete xlUp
  7. End Sub
複製代碼

TOP

藉此帖介紹一下ColumnDifferences用法:
Sub delrow()
r = [c:c].Find("cat").Row
[c:c].ColumnDifferences(Cells(r, 3)).Delete (3)
End Sub

TOP

受教了~~!!不過我有一點看不懂的,就是".Delete (3)"括號堛"3"是什麼意思呢?謝謝!!!
50 字節以內
不支持自定義 Discuz! 代碼

TOP

2011-06-27_140203.jpg
2011-6-27 14:29

整列刪除擺在第3

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題