Xóa dữ liệu dòng theo điều kiện

Liên hệ QC

balano

Thành viên mới
Tham gia
17/8/11
Bài viết
23
Được thích
1
Dear các bạn có kinh nghiệm vba trong diễn đàn,

Hiện tai mình có bảng tính và muốn xóa dữ liệu của các dòng theo điều kiện ở một cột bằng vba (nội dung có trong file đính kèm). Rất mong nhận được sự trợ giúp của các bạn.

Thanks and regards,
 

File đính kèm

  • Vba_Xoa_dong_theodk.zip
    6.9 KB · Đọc: 36
Lần chỉnh sửa cuối:
Dear các bạn có kinh nghiệm vba trong diễn đàn,

Hiện tai mình có bảng tính và muốn xóa dữ liệu của các dòng theo điều kiện ở một cột bằng vba (nội dung có trong file đính kèm). Rất mong nhận được sự trợ giúp của các bạn.

Thanks and regards,

Kinh nghiệm về VBA thì mình còn rất rất ít (mới chỉ nhập môn) nhưng cũng thử với sub này. Mà mình chẳng hiểu sao bạn lại để mấy dòng trống lại làm gì nhỉ ?
 

File đính kèm

  • Vba_Xoa_dong_theodk1.xlsm
    20.8 KB · Đọc: 38
Upvote 0
Mình để dòng trống là có lý do bạn ạ: nghỉ việc có người nghỉ người chưa mà, còn dòng trắng phía dưới để dành nhập người mới, đôi khi cũng có lợi đó, code của bạn chạy được, thanks bạn rất nhiều. Mình nghiên cứu thêm xem sao!
 
Upvote 0
Với code cũ có cách nào xóa với điều kiện ở 2 cột không các cao thủ?
 

File đính kèm

  • Xoa_data_theo_dk_vba.xlsm
    21.4 KB · Đọc: 12
Upvote 0
Với code cũ có cách nào xóa với điều kiện ở 2 cột không các cao thủ?

Bạn thử với sub củ chuối này xem sao.

PHP:
Sub test()
  Dim VsArr() As Variant
  Dim Tag1 As Long, lR As Long, lRIndex As Long
  Dim Tag2 As String
  Application.ScreenUpdating = False
  With Sheet1
    Tag1 = .[C1].Value
    Tag2 = UCase(.[C2].Value)
    VsArr = Range(.[B5], .[B65000].End(xlUp)).Resize(, 3).Value
      For lR = 1 To UBound(VsArr, 1)
        If VsArr(lR, 2) <> "" And VsArr(lR, 2) < Tag1 Then
          If VsArr(lR, 3) <> "" And UCase(VsArr(lR, 3)) = Tag2 Then
            lRIndex = lR + 4
          End If
        End If
      If lRIndex Then Range("A" & lRIndex, "D" & lRIndex).ClearContents
      Next lR
  End With
  Application.ScreenUpdating = True
End Sub
 
Upvote 0
Cảm ơn mhung12005 rất nhiều nhé.
Từ code cũ của bạn mình đã nghĩ ra cách làm gọn hơn một chút, cùng nhau tham khảo nhé

Mã:
Sub xoa()
Dim Rng, Cll As Range
Dim WS As Worksheet, strLdNghi As String, offDate As Long
    Set WS = Worksheets("Sheet1")
    Set Rng = WS.Range("B5", WS.[B100].End(xlUp)).Offset(0, 2)
    strLdNghi = "LN"
    offDate = WS.Range("C1").Value 'Ngay 26/07/2013
    For Each Cll In Rng
        If Cll.Value = strLdNghi And Cll.Offset(0, -1).Value < offDate Then
            If Cll <> "" Then
                Range(Cll, Cll.Offset(0, -3)).ClearContents
                Cll.ClearContents
            End If
        End If
    Next Cll
End Sub
 

File đính kèm

  • Xoa_data_theo_dk_vba(2dk).xlsm
    21.8 KB · Đọc: 52
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom