返回列表 上一主題 發帖

刪除列之vba寫法

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

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

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

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



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

TOP

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

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

再求教 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

再度請較如果要分開來執行刪除應如何寫
          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

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

TOP

2011-06-27_140203.jpg
整列刪除擺在第3

TOP

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

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題