Code xóa bỏ những hàng thỏa điều kiện

Liên hệ QC

alex-luu

Thành viên thường trực
Tham gia
10/3/15
Bài viết
300
Được thích
52
Chào các anh chị,
Nhờ các anh chị viết dùm 1 đoạn code để xóa bỏ những hàng nào thỏa điều kiện sau :

Nếu giá trị của 3 chữ cái đầu tiên trong cột A có xuất hiện những từ sau : ATD , BAN , CMD , DSA , TLS , ZPC thì xóa bỏ nguyên hàng đó
Nếu cột CA có xuất hiện chữ Probation Agent : xóa bỏ nguyên hàng đó.

Em xin cảm ơn các anh chị

1622875293269.png
Bài đã được tự động gộp:
 

File đính kèm

  • T01.2021.xls
    304.5 KB · Đọc: 11
Lần chỉnh sửa cuối:
Chào các anh chị,
Nhờ các anh chị viết dùm 1 đoạn code để xóa bỏ những hàng nào thỏa điều kiện sau :

Nếu giá trị của 3 chữ cái đầu tiên trong cột A có xuất hiện những từ sau : ATD , BAN , CMD , DSA , TLS , ZPC thì xóa bỏ nguyên hàng đó
Nếu cột CA có xuất hiện chữ Probation Agent : xóa bỏ nguyên hàng đó.

Em xin cảm ơn các anh chị

View attachment 260105
Bài đã được tự động gộp:
Thử :
Mã:
Option Explicit

Sub DeleteLine()
Dim Rng As Range, I&, xRng As Range, iTxtA As String, iTxtCA As String
Const txtA As String = "ATD,BAN,CMD,DSA,TLS,ZPC"
Const txtCA = "PROBATION AGENT"
With Sheets("Agent Info")
    Set Rng = .Range("A4:CA" & .Cells(Rows.Count, "A").End(xlUp).Row)
    For I = 1 To Rng.Rows.Count
        iTxtA = UCase(Left(Rng(I, 1), 3)): iTxtCA = UCase(Rng(I, 79))
        If InStr(txtA, iTxtA) Or iTxtCA = txtCA Then
            If xRng Is Nothing Then
                Set xRng = Rng(I, 1)
            Else
            Set xRng = Union(xRng, Rng(I, 1))
            End If
        End If
    Next
    xRng.Interior.Color = vbRed  'Dong nay de ban kiem tra lai, ok roi thi xoa di
    'xRng.EntireRow.Delete       'Neu thay ok roi thi cho chay lenh nay
End With
End Sub
 
Thử :
Mã:
Option Explicit

Sub DeleteLine()
Dim Rng As Range, I&, xRng As Range, iTxtA As String, iTxtCA As String
Const txtA As String = "ATD,BAN,CMD,DSA,TLS,ZPC"
Const txtCA = "PROBATION AGENT"
With Sheets("Agent Info")
    Set Rng = .Range("A4:CA" & .Cells(Rows.Count, "A").End(xlUp).Row)
    For I = 1 To Rng.Rows.Count
        iTxtA = UCase(Left(Rng(I, 1), 3)): iTxtCA = UCase(Rng(I, 79))
        If InStr(txtA, iTxtA) Or iTxtCA = txtCA Then
            If xRng Is Nothing Then
                Set xRng = Rng(I, 1)
            Else
            Set xRng = Union(xRng, Rng(I, 1))
            End If
        End If
    Next
    xRng.Interior.Color = vbRed  'Dong nay de ban kiem tra lai, ok roi thi xoa di
    'xRng.EntireRow.Delete       'Neu thay ok roi thi cho chay lenh nay
End With
End Sub
Chuẩn luôn. Cảm ơn bạn rất nhiều nhé. trước giờ mình đi filter bằng tay, rất mất thời gian, hihihi
 
Chuẩn luôn. Cảm ơn bạn rất nhiều nhé. trước giờ mình đi filter bằng tay, rất mất thời gian, hihihi
Thử :
Mã:
Option Explicit

Sub DeleteLine()
Dim Rng As Range, I&, xRng As Range, iTxtA As String, iTxtCA As String
Const txtA As String = "ATD,BAN,CMD,DSA,TLS,ZPC"
Const txtCA = "PROBATION AGENT"
With Sheets("Agent Info")
    Set Rng = .Range("A4:CA" & .Cells(Rows.Count, "A").End(xlUp).Row)
    For I = 1 To Rng.Rows.Count
        iTxtA = UCase(Left(Rng(I, 1), 3)): iTxtCA = UCase(Rng(I, 79))
        If InStr(txtA, iTxtA) Or iTxtCA = txtCA Then
            If xRng Is Nothing Then
                Set xRng = Rng(I, 1)
            Else
            Set xRng = Union(xRng, Rng(I, 1))
            End If
        End If
    Next
    xRng.Interior.Color = vbRed  'Dong nay de ban kiem tra lai, ok roi thi xoa di
    'xRng.EntireRow.Delete       'Neu thay ok roi thi cho chay lenh nay
End With
End Sub

Bạn ơi, mình áp dụng code của bạn qua 1 file khác , mình đã đổi tên sheet và sửa cột lại cho đúng mà sao code không hoạt động đúng, bạn giúp mình chỉnh lại chút nữa nhé

1624186014677.png
Option Explicit

Sub DeleteLine()
Dim Rng As Range, I&, xRng As Range, iTxtA As String, iTxtCA As String
Const txtA As String = "ATD,BAN,CMD,DSA,TLS,ZPC"
Const txtCA = "Lapsed"
With Sheets("Ag Info")
Set Rng = .Range("A4:CA" & .Cells(Rows.Count, "A").End(xlUp).Row)
For I = 1 To Rng.Rows.Count
iTxtA = UCase(Left(Rng(I, 1), 3)): iTxtCA = UCase(Rng(I, 10))
If InStr(txtA, iTxtA) Or iTxtCA = txtCA Then
If xRng Is Nothing Then
Set xRng = Rng(I, 1)
Else
Set xRng = Union(xRng, Rng(I, 1))
End If
End If
Next
xRng.Interior.Color = vbRed 'Dong nay de ban kiem tra lai, ok roi thi xoa di
'xRng.EntireRow.Delete 'Neu thay ok roi thi cho chay lenh nay
End With
End Sub
 

File đính kèm

  • 1624186014677.png
    1624186014677.png
    76.4 KB · Đọc: 1
  • xoa hang thoa dieu kien.xlsm
    40.5 KB · Đọc: 3
  • xoa hang thoa dieu kien.xlsm
    40.5 KB · Đọc: 3
Bạn ơi, mình áp dụng code của bạn qua 1 file khác , mình đã đổi tên sheet và sửa cột lại cho đúng mà sao code không hoạt động đúng, bạn giúp mình chỉnh lại chút nữa nhé

View attachment 260972
Option Explicit

Sub DeleteLine()
Dim Rng As Range, I&, xRng As Range, iTxtA As String, iTxtCA As String
Const txtA As String = "ATD,BAN,CMD,DSA,TLS,ZPC"
Const txtCA = "Lapsed"
With Sheets("Ag Info")
Set Rng = .Range("A4:CA" & .Cells(Rows.Count, "A").End(xlUp).Row)
For I = 1 To Rng.Rows.Count
iTxtA = UCase(Left(Rng(I, 1), 3)): iTxtCA = UCase(Rng(I, 10))
If InStr(txtA, iTxtA) Or iTxtCA = txtCA Then
If xRng Is Nothing Then
Set xRng = Rng(I, 1)
Else
Set xRng = Union(xRng, Rng(I, 1))
End If
End If
Next
xRng.Interior.Color = vbRed 'Dong nay de ban kiem tra lai, ok roi thi xoa di
'xRng.EntireRow.Delete 'Neu thay ok roi thi cho chay lenh nay
End With
End Sub
Dòng này If InStr(txtA, iTxtA) Or iTxtCA = txtCA Then
Sửa thành If InStr(txtA, iTxtA) Or iTxtCA = UCase(txtCA) Then
 
Web KT
Back
Top Bottom