標題:
[發問]
依照所指定欄位條件而刪除該列
[打印本頁]
作者:
b9208
時間:
2012-3-21 10:28
標題:
依照所指定欄位條件而刪除該列
各位先進您好
依照所指定欄位條件而刪除該列。
附件:當「地區1~4」及「單價」等欄位空白時,則刪除該列。
敬請先進們指導
非常感謝
[attach]10082[/attach]
作者:
hugh0620
時間:
2012-3-21 13:52
回復
1#
b9208
我採用的是由最後一筆該使處理~
這樣比較簡單~
有測試過了~ 沒有問題~
你再修改成適用於你要的~
Sub EX_1()
A = Sheet1.Range("A65536").End(xlUp).Row
For I = A To 2 Step -1
If Application.CountA(Sheet1.Range(Cells(I, 4), Cells(I, 7))) = 0 And Sheet1.Cells(I, 9) = "" Then
Sheet1.Rows(I).Delete
End If
Next
End Sub
複製代碼
作者:
Hsieh
時間:
2012-3-21 18:53
本帖最後由 Hsieh 於 2012-3-21 22:40 編輯
回復
1#
b9208
Sub bb()
Dim Rng As Range, A As Range
For Each A In Range("A1").CurrentRegion.Columns(9).SpecialCells(xlCellTypeBlanks)
If Application.CountA(A.Offset(, -5).Resize(, 4)) = 0 Then
If Rng Is Nothing Then
Set Rng = A
Else
Set Rng = Union(Rng, A)
End If
End If
Next
If Not Rng Is Nothing Then Rng.EntireRow.Delete
End Sub
複製代碼
作者:
b9208
時間:
2012-3-21 22:29
回復
2#
hugh0620
謝謝前輩指導
可以使用
但例外情形是A欄最後一列如果沒有資料,則最後一列無法判斷。
作者:
b9208
時間:
2012-3-21 22:50
回復
3#
Hsieh
感謝Hsieh版主
程式執行ok
再請教如依〞品名〞重複者,再判斷後面是否為空格而刪除該列
如附件
[attach]10088[/attach]
作者:
Hsieh
時間:
2012-3-21 23:01
回復
5#
b9208
Sub bb()
Dim Rng As Range, A As Range
For Each A In Range("A1").CurrentRegion.Columns(9).SpecialCells(xlCellTypeBlanks)
If Application.CountA(A.Offset(, -5).Resize(, 4)) = 0 And Application.CountIf(Range("B:B"), A.Offset(, -7)) > 1 Then
If Rng Is Nothing Then
Set Rng = A
Else
Set Rng = Union(Rng, A)
End If
End If
Next
If Not Rng Is Nothing Then Rng.EntireRow.Delete
End Sub
複製代碼
作者:
hugh0620
時間:
2012-3-22 10:56
回復
4#
b9208
你自己要去思考一下~ 怎麼樣去修改程式碼~ 就能套用能你自己的需求~
你提出來的品名重覆/單價沒有資料~ 要踢除~
這個問題~ 你自己要去思索一下~ 你的品名與地區的關係~
同一個品名但地區不一樣~ 也要刪除嘛??
假設如下的例子:
11 WE 456121 高雄 屏東 南投 6 65
12 WE 456121 高雄 屏東 新竹 南投 6
思索一下~ 你真正要留下來的資料是什麼??
Sub EX_1()
A = Application.Max(Sheet1.Range("A65536").End(xlUp).Row, Sheet1.Range("B65536").End(xlUp).Row, Sheet1.Range("C65536").End(xlUp).Row, Sheet1.Range("D65536").End(xlUp).Row, Sheet1.Range("E65536").End(xlUp).Row, Sheet1.Range("F65536").End(xlUp).Row, Sheet1.Range("G65536").End(xlUp).Row, Sheet1.Range("H65536").End(xlUp).Row, Sheet1.Range("I65536").End(xlUp).Row)
For I = A To 2 Step -1
If Application.CountA(Sheet1.Range(Cells(I, 4), Cells(I, 7))) = 0 Or Sheet1.Cells(I, 9) = "" Then
Sheet1.Rows(I).Delete
End If
Next
End Sub
複製代碼
作者:
b9208
時間:
2012-3-23 00:08
非常感謝前輩們的指導
執行OK了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)