Tìm phần tử duy nhất trong tập hợp bỏ qua ô rỗng

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Nhật Anh 9x

Thành viên chính thức
Tham gia
21/10/22
Bài viết
72
Được thích
3
Thưa Anh Chị

Em đang muốn lấy phần từ duy nhất của 1 tập hợp, nhưng em chưa biết cách để loại bỏ ô trống nên ô trống đó vẫn được ghi nhận là một phần tử
Em đang muốn lấy phần từ duy nhất từ vùng D12:D27 và trả kết quả về D55. Vậy anh chị có cách nào xin chỉ cho em với ạ!

Sub TH_MAHANG(item As Variant)
Set dict = CreateObject("Scripting.dictionary")
Set wb = ActiveWorkbook
Set sh = wb.Sheets(1)
Dim lr As Integer
lr = sh.Range("A" & Rows.Count).End(xlUp).Row
arr = sh.Range("D12:D" & lr - 1).Value
For i = 1 To UBound(arr, 1)
If Not dict.exists(arr(i, 1)) Then
item = arr(i, 1)
dict.Add arr(i, 1), arr(i, 1)
End If
Next i
sh.Range("D" & lr + 27).Resize(dict.Count) = Application.Transpose(dict.items)
Set dict = Nothing
Set arr = Nothing
Set item = Nothing
End Sub

1672361669895.png1672361713699.png
 
Thưa Anh Chị

Em đang muốn lấy phần từ duy nhất của 1 tập hợp, nhưng em chưa biết cách để loại bỏ ô trống nên ô trống đó vẫn được ghi nhận là một phần tử
Em đang muốn lấy phần từ duy nhất từ vùng D12:D27 và trả kết quả về D55. Vậy anh chị có cách nào xin chỉ cho em với ạ!

Sub TH_MAHANG(item As Variant)
Set dict = CreateObject("Scripting.dictionary")
Set wb = ActiveWorkbook
Set sh = wb.Sheets(1)
Dim lr As Integer
lr = sh.Range("A" & Rows.Count).End(xlUp).Row
arr = sh.Range("D12:D" & lr - 1).Value
For i = 1 To UBound(arr, 1)
If Not dict.exists(arr(i, 1)) Then
item = arr(i, 1)
dict.Add arr(i, 1), arr(i, 1)
End If
Next i
sh.Range("D" & lr + 27).Resize(dict.Count) = Application.Transpose(dict.items)
Set dict = Nothing
Set arr = Nothing
Set item = Nothing
End Sub

View attachment 285236View attachment 285237
Thêm hàm IsEmpty để kiểm tra rỗng
Mã:
If Not IsEmpty(arr(i, 1)) And Not dict.exists(arr(i, 1)) Then
 
Upvote 0
hoặc đơn giản là thêm điều kiện
arr(i, 1)<>""
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom