Code xóa nhiều dòng xen kẻ nhau có điều kiện (3 người xem)

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

Người dùng đang xem chủ đề này

chicpt

Thành viên mới
Tham gia
18/1/12
Bài viết
24
Được thích
4
Nhờ các bác chỉ giúp. Mình có vùng Dữ liệu có nhiều dòng muốn xóa , nhưng nằm xen kẻ nhau. Mình chạy cái này nó xóa từng dòng lâu quá, Nhờ Pro giúp dùm . Thân.
----Điều kiện xóa tìm thấy "XoaBo" cột A thì xó nguyên dòng.
Mã:
Dim dkdk = "XoaBo"
For r = [a65536].End(3).Row To 1 Step -1
If Cells(r, 1) = dk Then
Cells(r, 1).EntireRow.Delete
End If
Next
File tạm thời gửi lên rúi Pro giúp với
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Nhờ các bác chỉ giúp. Mình có vùng Dữ liệu có nhiều dòng muốn xóa , nhưng nằm xen kẻ nhau. Mình chạy cái này nó xóa từng dòng lâu quá, Nhờ Pro giúp dùm . Thân.
----Điều kiện xóa tìm thấy "XoaBo" cột A thì xó nguyên dòng.
Mã:
Dim dkdk = "XoaBo"
For r = [a65536].End(3).Row To 1 Step -1
If Cells(r, 1) = dk Then
Cells(r, 1).EntireRow.Delete
End If
Next
File tạm thời gửi lên rúi Pro giúp với

Code vầy thử xem:
Mã:
Sub Test()
  Dim tmp As String
  Dim n As Long, i As Long
  Dim aData, Arr()
  On Error Resume Next
  With [COLOR=#ff0000]Sheet1.Range("A4:B60000")[/COLOR]
    aData = .Value
    ReDim Arr(1 To UBound(aData, 1), 1 To 2)
    For i = 1 To UBound(aData, 1)
      tmp = CStr(aData(i, 1))
      If Len(tmp) Then
        If UCase(tmp) <> "XOABO" Then
          n = n + 1
          Arr(n, 1) = tmp
          Arr(n, 2) = aData(i, 2)
        End If
      End If
    Next
    If n Then
      .ClearContents
      .Resize(n, 2).Value = Arr
    End If
  End With
End Sub
Lưu ý chổ màu đỏ, nếu vùng dữ liệu thật của bạn khác địa chỉ trên, hãy sửa lại cho phù hợp (quan trọng cell đầu thôi, còn cell cuối cứ cho dư thoải mái)
 
Upvote 0
Nhưng mìnhmuoons nó xóa luôn cả dòng nếu thỏa điều kiện Cột A "XoaBo". Pro giúp nha. Chân thành cảm ơn.
 
Upvote 0
Nhưng mìnhmuoons nó xóa luôn cả dòng nếu thỏa điều kiện Cột A "XoaBo". Pro giúp nha. Chân thành cảm ơn.

Cách của tôi làm là:
- Tìm các giá trị thỏa điều kiện (<> "XOABO") rồi cho vào mảng
- Xong việc ta gán nguyên mảng xuống sheet
- Như vậy sẽ không có chuyện xóa dòng gì ở đây cả
Nên biết rằng việc xóa dòng là thực hiện trực tiếp trên Range, thế nào dữ liệu nhiều chắc chắn sẽ chạy chậm, trong khi cách của tôi thực hiện trên mảng nên tốc độ cực cao....
Vấn để ở đây là bạn cần cho tôi biết dữ liệu của bạn "dài" đến cột nào tôi sẽ "xóa" chính xác nhiêu đó thôi
 
Upvote 0
Dữ liệu mình làm có 36 cột lận vì dữ liệu kế toán nên hơi dài. Rất mong Pro trợ giúp. Thân
 
Upvote 0
Web KT

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

Back
Top Bottom