Xóa dữ liệu tự động nếu biết số dòng và cột (1 người xem)

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

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

mraleno

Thành viên chính thức
Tham gia
1/12/09
Bài viết
68
Được thích
18
Chào anh em GPE,
Mình muốn nhờ anh em giúp mình code VBA nào có thể tự động xóa dữ liệu trong file data
Mình có 1 file data gốc và 1 file nhập dữ liệu
Vì số lượng dữ liệu khá nhiều nên mình muốn nó tự động xóa dữ liệu trong file data theo điều kiện của bên dữ liệu nhập

223694
trong dữ liệu nhập mình có 1 cột bao chỉ ra được dòng nào và cột nào cần xóa dấu X
ví dụ: nếu mình nhập vô "22400030 A" thì nó sẽ tìm đến dòng chứa code 22400030 và cột A để xóa dấu X


223695

như vậy VBA có thể làm được không vậy? Cảm ơn mọi người
 

File đính kèm

Chào anh em GPE,
Mình muốn nhờ anh em giúp mình code VBA nào có thể tự động xóa dữ liệu trong file data
Mình có 1 file data gốc và 1 file nhập dữ liệu
Vì số lượng dữ liệu khá nhiều nên mình muốn nó tự động xóa dữ liệu trong file data theo điều kiện của bên dữ liệu nhập

View attachment 223694
trong dữ liệu nhập mình có 1 cột bao chỉ ra được dòng nào và cột nào cần xóa dấu X
ví dụ: nếu mình nhập vô "22400030 A" thì nó sẽ tìm đến dòng chứa code 22400030 và cột A để xóa dấu X


View attachment 223695

như vậy VBA có thể làm được không vậy? Cảm ơn mọi người
Bạn thử.
Mã:
Sub xoadulieu()
    Dim a, i As Long, j As Integer, lr As Long, b As Integer, arr, dic As Object, dk As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("nhap du lieu")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         arr = .Range("A2:B" & lr).Value
         For i = 1 To UBound(arr)
             dk = arr(i, 1)
             dic.Item(dk) = i
         Next i
    End With
    With Sheets("data")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         arr = .Range("A1:F" & lr).Value
         If lr = 1 Then Exit Sub
         For i = 2 To UBound(arr)
             For j = 2 To UBound(arr, 2)
                 dk = arr(i, 1) & " " & arr(1, j)
                 If dic.exists(dk) Then
                    arr(i, j) = Empty
                 End If
             Next j
        Next i
        .Range("A1:F" & lr).Value = arr
  End With
End Sub
 
Cảm ơn bạn SNOW25 nha. code chạy mượt. chỉ bị dính lỗi trùng kí tự tìm kiếm. Nhưng mình đã khắc phục được bằng cách tách nó ra riêng.
 
Web KT

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

Back
Top Bottom