Board logo

標題: [發問] 依設定條件刪除整列 [打印本頁]

作者: b9208    時間: 2011-3-2 20:29     標題: 依設定條件刪除整列

請教前輩
依H欄為〞空格〞或〞字串的字數大於12〞,則刪除該列。(字串 123456ABCDE12)
參照本論壇文獻,修訂但無法刪除,敬請前輩指點:
Sub yy()
Dim AA&, i&, myi As Range
With Sheets (“TEST”)
AA = Range("A65536").End(xlUp).Row
  For i = 6 To AA
    If Len(Trim(Cells(i, 8).Value).Value) > 10 Or Cells(i, 8) = "" Then
    If myi Is Nothing Then
    Set myi = Cells(i, 8)
    Else
    Set myi = Union(myi, Cells(i, 8))
    End If
    End If
    Next
  If Not myi Is Nothing Then myi.EntireRow.Delete
End With
End Sub
作者: GBKEE    時間: 2011-3-2 21:03

回復 1# b9208
    5]http://forum.twbts.com/redirect.php?goto=findpost&pid=15511&ptid=2733]5#
作者: b9208    時間: 2011-3-2 21:45

謝謝前輩指點
就是少了〞.〞這點
已OK了
作者: b9208    時間: 2011-4-29 11:44

請教先進
依A欄資料判斷,如A儲存格資料 = "中部" 或 " " (空白),則刪除五列。
例如:A6 = "中部",則刪除A6:A10整列(刪除五列)。
1# 之程式碼應如何修改
資料約有上萬筆。
謝謝指導!
作者: b9208    時間: 2011-4-29 11:45

請教先進
依A欄資料判斷,如A儲存格資料 = "中部" 或 " " (空白),則刪除五列。
例如:A6 = "中部",則刪除A6:A10整列(刪除五列)。
1# 之程式碼應如何修改
資料約有上萬筆。
謝謝指導!
作者: hugh0620    時間: 2011-4-29 13:14

回復 5# b9208


    http://forum.twbts.com/viewthrea ... ghlight=&page=3
    這是我以前問過與您類似的問題~ 提供給您參考~
    應該可以解決你的問題~
作者: b9208    時間: 2011-4-29 23:40

回復 6# hugh0620

謝謝前輩指導
問題已解決了
另請教可以改善下述多重條件" Or "之表示方式?
---------
For Each A In Range("A6:A65536").SpecialCells(xlCellTypeConstants)
If A = "中部" Or A = "借貸"  Or A.Offset(, 4) = "" Or A.Offset(, 11) = "林二" Or A.Offset(, 12) = "外住" Or A.Offset(, 12) = "外地" Then
--------
作者: luhpro    時間: 2011-4-30 05:01

本帖最後由 luhpro 於 2011-4-30 05:03 編輯

你看看底下這樣的方式符合你的需求嗎?

先設定兩個陣列(假設是 字串陣列 sC()包含 "中部", "借貸", "",  "林二"... 與 數值陣列 iD() 包含 0, 0, 4, 11, ...)
或是使用 Dictionary 每個單位都兩個資料, 例如 "中部" 與 0, "借貸" 與 0, ...

with A
  bFind = False
  For iI = 1 To  7
    If A.Offset(, iD(iI)) = sC(iI) Then bFind = True
  Next iI

  If bFind = True Then
    ....
  End If
如果 Or 的條件有一大堆時, 程式會比較容易判讀又不容易打錯字.
作者: b9208    時間: 2011-4-30 09:23

回復 8# luhpro
謝謝前輩指導
採用陣列方式確實增加閱讀,也可以減少錯誤
謝謝




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