返回列表 上一主題 發帖

刪除列之vba寫法

謝謝各位熱心的指導 再次感謝

TOP

再度請較如果要分開來執行刪除應如何寫
          a    b    c    d       e    f    g    h
      ----------------------------------
1      2    3    x    1       2    1   y    1
2      1    2    y    3       2    3   x    3
3      3    2    x    2       3    2   x    2
4      2    3    z    3       4    2   x    3

即 a b c d 行 一組執行   [c:c].Find("x")     若非 x 刪 range(a2:d2) and (a4:d4)  不一定是2 ,4列
另一組 e f g h 行 執行   [g:g].Find("x")      若非 x 刪 range(e1:h1)   不一定是 列1
  這樣是否可行?

另外還有一個問題想請教
  sheet1 式自動篩選 含有隱藏列    5-10 若右手動執行copy a1:h20 至sheet2可以貼上(值)
  但是使用 vba來執行 卻不可貼上  出現 400警告圖  請教各位前輩應如寫此 vba  
謝謝

TOP

再求教 oobird 先進
Sub delrow()
r = [c:c].Find("cat").Row
[c:c].ColumnDifferences(Cells(r, 3)).Delete (3)
End Sub

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

TOP

回復 13# jim
可刪掉有空白的整列的另一語法 .
  1. Sub Ex()   
  2.     Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  3.    'CurrentRegion        傳回 Range 物件,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍。
  4.    'SpecialCells              傳回 Range 物件,此物件代表與指定型態及值相符合的所有儲存格。
  5.    '參數    xlCellTypeBlanks 。 空儲存格
  6.    'EntireRow                 傳回 Range 物件,該物件代表包含指定範圍的整個列 (或若干列)。
  7. End Sub
複製代碼

TOP

多謝你的指導
   但是其他 rows 還有空格 所以執行時全部刪除

TOP

多謝你的指導
   但是其他 rows 還有空格 所以執行時全部刪除
jim 發表於 2011-7-23 16:41



    [c:c].SpecialCells(4).Delete (3)

TOP

再度求教 oobird 先進
SpecialCells(4).  4是何意思或作用
Sub delrow()
r = [c:c].Find("").Row
[c:c].SpecialCells(4).Delete (3)
End Sub
所有資料全刪

我把C位移至E
         A      B      C      D       E      F
1                     23    34              34
2             12           23    dog   23
3            34    12                      12
4     45                   34    cat     45
5     23    23                             23
刪除  1 3 5 Rows  只剩
           A      B        C      D      E       F
    1            12              23    dog   23
    2     45                     34    cat     45
   
Sub delrow()
r = [E:E].Find("").Row
[E:E].SpecialCells(4).Delete (3)
End Sub
       修改如下是否正確?          TKS

TOP

SpecialCells(4).  4是表示空白儲存格
   r = [E:E].Find("").Row~這行是多餘的

Sub delrow()
[E:E].SpecialCells(4).Delete (3)
End Sub
這樣即可

TOP

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

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

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

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題