返回列表 上一主題 發帖

[發問] 依設定條件刪除整列

[發問] 依設定條件刪除整列

請教前輩
依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
100 字節以內
不支持自定義 Discuz! 代碼

TOP

謝謝前輩指點
就是少了〞.〞這點
已OK了
100 字節以內
不支持自定義 Discuz! 代碼

TOP

請教先進
依A欄資料判斷,如A儲存格資料 = "中部" 或 " " (空白),則刪除五列。
例如:A6 = "中部",則刪除A6:A10整列(刪除五列)。
1# 之程式碼應如何修改
資料約有上萬筆。
謝謝指導!
100 字節以內
不支持自定義 Discuz! 代碼

TOP

請教先進
依A欄資料判斷,如A儲存格資料 = "中部" 或 " " (空白),則刪除五列。
例如:A6 = "中部",則刪除A6:A10整列(刪除五列)。
1# 之程式碼應如何修改
資料約有上萬筆。
謝謝指導!
100 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 5# b9208


    http://forum.twbts.com/viewthrea ... ghlight=&page=3
    這是我以前問過與您類似的問題~ 提供給您參考~
    應該可以解決你的問題~
學習才能提升自己

TOP

回復 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
--------
100 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 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 的條件有一大堆時, 程式會比較容易判讀又不容易打錯字.

TOP

回復 8# luhpro
謝謝前輩指導
採用陣列方式確實增加閱讀,也可以減少錯誤
謝謝
100 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題