Xóa dòng có điều kiện

Liên hệ QC

trantuonganh2008

Thành viên thường trực
Tham gia
8/11/08
Bài viết
305
Được thích
53
Mình sửa code của bạn Chanh_TQ@ lại theo ý mình tại cột B sao nó báo lỗi, nhờ các bạn chỉ giúp nhé! Cám ơn nhiều! Sub Delete4Rows() Dim eRw As Long, jJ As Long: Dim dRng As Range eRw = [B65500].End(xlUp).Row If [D65500].End(xlUp).Row > eRw Then eRw = [D65500].End(xlUp).Row Set dRng = Range("A14:F" & eRw).SpecialCells(xlCellTypeConstants, 22) For jJ = eRw To 14 Step -1 If Not Intersect(Cells(jJ, "B"), dRng) And Intersect(Cells(jJ, "B"), dRange).Values = "DNTN A" Is Nothing Then Cells(jJ, 1).EntireRow.Delete ElseIf Not Intersect(Cells(jJ, "D"), dRng) Is Nothing And Not _ IsNumeric(Left(Cells(jJ, 4), 1)) Then Cells(jJ, 1).EntireRow.Delete End If Next jJ End Sub
 
Lần chỉnh sửa cuối:
PHP:
Sub Delete4Rows()
 Dim eRw As Long, jJ As Long:           Dim dRng As Range
 
 eRw = [B65500].End(xlUp).Row
 If [D65500].End(xlUp).Row > eRw Then eRw = [D65500].End(xlUp).Row
 Set dRng = Range("A14:F" & eRw).SpecialCells(xlCellTypeConstants, 22)
 For jJ = eRw To 14 Step -1
      If Not Intersect(Cells(jJ, "B"), dRng) Is Nothing _
           And Cells(jJ, "B").Values = "DNTN A" Then
                Cells(jJ, 1).EntireRow.Delete
      ElseIf Not Intersect(Cells(jJ, "D"), dRng) Is Nothing And Not _
                 IsNumeric(Left(Cells(jJ, 4), 1)) Then
                Cells(jJ, 1).EntireRow.Delete
      End If
 Next jJ
End Sub
Nếu bạn chỉ cần xóa những dòng mà cột 'B' dòng đó có chuỗi "DNTN A" hay cột 'D' là chuỗi có chữ cái đầu thì ta có thể gộp 2 dòng lệnh đó lại, (Bạn thử xài dòng lệnh sau):

PHP:
If (Not Intersect(Cells(jJ, "D"), dRng) Is Nothing And Not _
             IsNumeric(Left(Cells(jJ, 4), 1))) Or Cells(jJ, "B").Values = "DNTN A"  Then
                Cells(jJ, 1).EntireRow.Delete
      End If
 
Hi HYen17, Mình đã xóa câu lệnh If _ End If và paste dòng lệnh của bạn vào nhưng nó báo lỗi, không biết tại sao nữa? Nhờ HYen giúp mình nhé! Thân.
 
Lần chỉnh sửa cuối:
PHP:
Sub DeleteRows()
 Dim eRw As Long, jJ As Long:           Dim dRng As Range
 
 eRw = [B65500].End(xlUp).Row
 If [D65500].End(xlUp).Row > eRw Then eRw = [D65500].End(xlUp).Row
 Set dRng = Range("A14:F" & eRw).SpecialCells(xlCellTypeConstants, 22)
 
 For jJ = eRw To 14 Step -1
   If Cells(jJ, "B") = "DNTN A" Or (Not Intersect(Cells(jJ, "D"), dRng) Is Nothing And Not _
      IsNumeric(Left(Cells(jJ, 4), 1))) Then
      Cells(jJ, 1).EntireRow.Delete
   End If
 Next jJ
End Sub
14|GPE|(B)|(C)|2K33|
15||DNTN A|GPE|||
16||DNTN A||4GPE|
17||456|A DNTN|GPẸ7|
18||10||GPE999|
19|124|B DNTN|S45 |
 
Chỉnh sửa lần cuối bởi điều hành viên:
Hi HYen, Hình như code có vấn đề. Khi tại không phải là "DNTN A" & tại [F] là số thì code báo lỗi và cũng xóa dòng này luôn. Cho mình hỏi thêm là sao phải là A14. Mình muốn bắt đầu xóa từ A1 thì sửa lại như thế nào? Cám ơn HYen nhiều!!!
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom