- Hôm nay là ngày 18/02/2017 (11h38), mình làm tiếp bài thứ 3, đồng thời sẽ share all các video mình dạy học trong khóa học online cho các bạn tham khảo các kiến thức cơ bản.
- Khi Các bạn có một danh sách các dữ liệu bị trùng giữa các hàng, nếu các bạn muốn xóa các dòng trùng đó thì có thể chọn chức năng có sẵn trong Excel đó là Remove Duplicates, tuy nhiên với một nhu cầu khác, chúng ta cần thực hiện theo một nhu cầu nhất định nào đó mà ta có thể tùy biến thì tốt nhất các bạn viết code VBA nhé. Các bước thực hiện như sau:
+ Bước 1: Các bạn vào cửa sổ viết code và insert module mới, và dán code sau đây vào:
Sub XoaTrung()
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Dim rngData As Range
Dim rngKQ As Range
Dim arr(), kq()
Dim k As Long
Set rngData = Application.InputBox("Chon Vung Chua Du Lieu", "Chon Data", , , , , , 8)
Set rngKQ = Application.InputBox("Chon Vung tra ve ket qua", "Vung Ket Qua", , , , , , 8)
arr = rngData.Value
ReDim kq(1 To UBound(arr), 1 To 2)
For i = 1 To UBound(arr, 1)
dic(arr(i, 1)) = ""
Next i
For i = 1 To UBound(arr, 1)
If Not dic.exists(arr(i, 1)) Then
dic.Item(arr(i, 1)) = arr(i, 2)
Else
If Len(arr(i, 2)) > 1 Then
dic.Item(arr(i, 1)) = arr(i, 2)
End If
End If
Next i
rngKQ.Resize(5000, 2).ClearContents
rngKQ.Resize(dic.Count, 1).Value = WorksheetFunction.Transpose(dic.keys())
rngKQ(1, 2).Resize(dic.Count, 1).Value = WorksheetFunction.Transpose(dic.items())
End Sub
+ Bước 2: Các bạn trở về Excel chọn insert -> Shapes và chọn một hình nào đó vẽ lên bảng tính và right Click lên hình vừa tạo -> Chọn Assign Macro --> Chọn tiếp Macro XoaTrung, vậy là hình chúng ta vừa tạo đã được gắn với một macro, khi ta bấm vào hình đó thì sẽ thực thi macro mà chúng ta gán cho nó.
+ Bước 3: Bấm lên hình sẽ xuất hiện một họp thoại, sau đó chọn vùng dữ liệu cần xóa dữ liệu trùng, chọn xong bấm OK và chọn tiếp ô dữ liệu đầu tiên mà ta cần dán kết quả, Các bạn có thể xem chi tiết ở video bên dưới.
===> DOWNLOAD FILE
- Khi Các bạn có một danh sách các dữ liệu bị trùng giữa các hàng, nếu các bạn muốn xóa các dòng trùng đó thì có thể chọn chức năng có sẵn trong Excel đó là Remove Duplicates, tuy nhiên với một nhu cầu khác, chúng ta cần thực hiện theo một nhu cầu nhất định nào đó mà ta có thể tùy biến thì tốt nhất các bạn viết code VBA nhé. Các bước thực hiện như sau:
+ Bước 1: Các bạn vào cửa sổ viết code và insert module mới, và dán code sau đây vào:
Sub XoaTrung()
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Dim rngData As Range
Dim rngKQ As Range
Dim arr(), kq()
Dim k As Long
Set rngData = Application.InputBox("Chon Vung Chua Du Lieu", "Chon Data", , , , , , 8)
Set rngKQ = Application.InputBox("Chon Vung tra ve ket qua", "Vung Ket Qua", , , , , , 8)
arr = rngData.Value
ReDim kq(1 To UBound(arr), 1 To 2)
For i = 1 To UBound(arr, 1)
dic(arr(i, 1)) = ""
Next i
For i = 1 To UBound(arr, 1)
If Not dic.exists(arr(i, 1)) Then
dic.Item(arr(i, 1)) = arr(i, 2)
Else
If Len(arr(i, 2)) > 1 Then
dic.Item(arr(i, 1)) = arr(i, 2)
End If
End If
Next i
rngKQ.Resize(5000, 2).ClearContents
rngKQ.Resize(dic.Count, 1).Value = WorksheetFunction.Transpose(dic.keys())
rngKQ(1, 2).Resize(dic.Count, 1).Value = WorksheetFunction.Transpose(dic.items())
End Sub
+ Bước 2: Các bạn trở về Excel chọn insert -> Shapes và chọn một hình nào đó vẽ lên bảng tính và right Click lên hình vừa tạo -> Chọn Assign Macro --> Chọn tiếp Macro XoaTrung, vậy là hình chúng ta vừa tạo đã được gắn với một macro, khi ta bấm vào hình đó thì sẽ thực thi macro mà chúng ta gán cho nó.
+ Bước 3: Bấm lên hình sẽ xuất hiện một họp thoại, sau đó chọn vùng dữ liệu cần xóa dữ liệu trùng, chọn xong bấm OK và chọn tiếp ô dữ liệu đầu tiên mà ta cần dán kết quả, Các bạn có thể xem chi tiết ở video bên dưới.
===> DOWNLOAD FILE
Đăng nhận xét