? Xóa dòng với điều kiện ?

  • Thread starter Thread starter vumian
  • Ngày gửi Ngày gửi
Liên hệ QC

vumian

Mỗi bậc thang là mỗi Cell
Tham gia
12/3/07
Bài viết
267
Được thích
186
Nghề nghiệp
employee only, not a boss
Dear all,

Mã:
Dim LastRow As Integer
Dim Col As Long
Sub Del_ItemTotal()
sFindString = "abc:"
With Worksheets("Sheet1")
Col = .Range("B2").Column
LastRow = .Cells(.Rows.Count, Col).End(xlUp).Row
End With
'MsgBox Col ,'MsgBox lastrow
Set tmp = Range("B2:B" & LastRow).Find(What:=sFindString, LookAt:=xlWhole, SearchDirection:=xlNext)
While Not (tmp Is Nothing)
tmp.EntireRow.Delete
Set tmp = Range("B2:B" & LastRow).Find(What:=sFindString, LookAt:=xlWhole, SearchDirection:=xlNext)
Wend
End Sub

Code trên là tìm từ đầu cột đến dòng cuối cùng trong range, nếu cells.value nào là "abc" thì xóa dòng đó, mà chạy chậm, nhìn hôg đẹp, chưa thích lắm, bác xem sửa lại giúp nha

Và mình cũng xin luôn code nào tìm không phải là dòng có value là "abc" thì xóa nhữg dòng đó,

Cam on nhieu
 
vumian đã viết:
Dear all,

Mã:
Dim LastRow As Integer
Dim Col As Long
Sub Del_ItemTotal()
sFindString = "abc:"
With Worksheets("Sheet1")
Col = .Range("B2").Column
LastRow = .Cells(.Rows.Count, Col).End(xlUp).Row
End With
'MsgBox Col ,'MsgBox lastrow
Set tmp = Range("B2:B" & LastRow).Find(What:=sFindString, LookAt:=xlWhole, SearchDirection:=xlNext)
While Not (tmp Is Nothing)
tmp.EntireRow.Delete
Set tmp = Range("B2:B" & LastRow).Find(What:=sFindString, LookAt:=xlWhole, SearchDirection:=xlNext)
Wend
End Sub

Code trên là tìm từ đầu cột đến dòng cuối cùng trong range, nếu cells.value nào là "abc" thì xóa dòng đó, mà chạy chậm, nhìn hôg đẹp, chưa thích lắm, bác xem sửa lại giúp nha

Bác xem thêm bài này nhé
http://www.giaiphapexcel.com/forum/showthread.php?t=5399

ứng dụng vào bài của bác thì tuyệt,
Sau khi đã chọn đến lastrow, bác làm tiếp cái này
Mã:
    Selection.Find(What:="abc:", LookAt:=xlWhole).Activate
    Selection.ColumnDifferences(ActiveCell).Select
    Seclection.EntireRow.Delete

Vậy là khỏi search từng phần tử, nhanh vù vù, Find một lần duy nhất.

Và mình cũng xin luôn code nào tìm không phải là dòng có value là "abc:" thì xóa nhữg dòng đó

nếu các hàng dữ liệu của bác chắc chắn là không ẩn, thì bác dùng thêm đoạn code này, sau khi đã select các dòng "abc"
set k =

set k = selection
 
Upvote 0
Thanks 2 bác nhiều, Em cũng làm duoc nhanh tí rùi, thiếu 1 dòng lệnh, mà chậm mất 10 lần, hihixx
 
Upvote 0
To Vumian
Nếu data của ông ít thì duyệt data kiểu này không sao, chứ nếu data vài chục ngàn dòng mà duyệt kiểu này "cắn lưỡi" luôn đó. Tui nghĩ, ông nên Filter rồi delete luôn 1 lần.

Thân!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom