返回列表 上一主題 發帖

刪除列之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

原來如此
物件裡面一堆數值
看的眼都花了
謝謝

TOP

本帖最後由 luhpro 於 2020-12-19 00:02 編輯
回復  GBKEE


請問.......
如果我用「區域變數」來觀察他的變化
我該看rng裡面哪個數值?
裡面大概 ...
ssooi 發表於 2020-12-18 13:26


關於7#
要看的關鍵在那一行 : Rng = Union(Rng, R)
結果是個 "儲存格集合(即Range Union)".
儲存格本身是個 "物件" 組成元素太多了,
而我們要看的是該集合中變化(加減)了哪個儲存格,
所以只需要了解Union組成中儲存格的 "位址" 變化就夠了,
運算式用 :  Rng.address

關於 21#
要看的關鍵在那一行 : Set xU = Union(xU, xR)
運算式用 :  xU.address

在 "即時運算視窗" 中打上 ?(上述的運算式)
例如 :  ?Rng.address
再按 Enter 就可以知道集合中儲存格物件的增減(觀看顯示的位址群變化).

若不想F8跑一步就要按Enter看一次,
也可以在 "新增監看式" 中監看 : (上述的運算式) .
例如 :  Rng.address

TOP

回復 7# GBKEE


請問.......
如果我用「區域變數」來觀察他的變化
我該看rng裡面哪個數值?
裡面大概有30項跑不掉吧

抱歉
問了個很基礎的問題⋯⋯
但是我真的不曉得range裡面的各個數值代表的意義是什麼

TOP

回復 23# 准提部林


    感謝 准堤大 !
    OK了!

TOP

回復 22# ABK

加一右斜線~~
If InStr("//cat/dog/", "/" & xR & "/") < 2 Then

TOP

回復 21# 准提部林


謝謝准堤大 !
cat 的列 也被刪除了!

column_delete.jpg (13.8 KB)

column_delete.jpg

column_delete.zip (15.45 KB)

TOP

回復 20# ABK

沒檔案, 盲寫:
Sub TEST()
Dim xA As Range, xR As Range, xU As Range
Set xA = Sheets("Sheet1").UsedRange.Offset(1, 0)
For Each xR In xA.Columns(3).Cells
    If InStr("/cat/dog/", "/" & xR & "/") < 2 Then
       If xU Is Nothing Then Set xU = xR Else Set xU = Union(xU, xR)
    End If
Next
If Not xU Is Nothing Then xU.EntireRow.Delete
End Sub


=====================

TOP

[借題發問]
請教各位大大!  若第一列為表頭標題列( 需要保留),
在 Sheet1內 想 刪除 column c 內 非屬於 cat 和 dog 之各列  程式要如何修改呢?

           A         B           C          D
  1    編號    位置     名稱     天數
  2     23        34        cat        34
  3     12        23      dog        23
  4     34        12         yy        12
  5     45        34       cat         45
  6     23        23      dog        23
  7     13        18         xx        32


刪除  4 、7 Rows  只剩

           A          B          C          D
  1    編號    位置     名稱     天數
  2     23        34        cat        34
  3     12        23      dog        23
  5     45        34        cat        45
  6     23        23      dog        23

TOP

oobird 先進
謝謝你的解說  試一下可行

請教一個問題 在純空格上執行 完全沒問題
若是再用 copy 貼上則無法執行 是否在4這個指令尚有問題?
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題