Tìm phần tử duy nhất trong tập hợp bỏ qua ô rỗng (3 người xem)

Liên hệ QC

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

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
74
Đượ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