วิธีนับค่าที่ไม่ซ้ำในช่วงโดยใช้ vba
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อนับจำนวนค่าที่ไม่ซ้ำในช่วงโดยใช้ VBA:
SubCountUnique ()
Dim Rng As Range, List As Object, UniqueCount As Long
Set List = CreateObject(" Scripting.Dictionary ")
'count unique values in range A2:A11
For Each Rng In Range(" A2:A11 ")
If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
'store unique count
UniqueCount = List.Count
' display unique count
MsgBox " Count of Unique Values: " & UniqueCount
End Sub
ตัวอย่างนี้จะนับจำนวนค่าที่ไม่ซ้ำในช่วง A2:A11 แล้วแสดงการนับในกล่องข้อความ
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: นับค่าที่ไม่ซ้ำในช่วงโดยใช้ VBA
สมมติว่าเรามีรายชื่อทีมบาสเก็ตบอลใน Excel ต่อไปนี้:
สมมติว่าเราต้องการนับจำนวนชื่อทีมที่ไม่ซ้ำกันในช่วง A2:A11
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubCountUnique()
Dim Rng As Range, List As Object, UniqueCount As Long
Set List = CreateObject(" Scripting.Dictionary ")
'count unique values in range A2:A11
For Each Rng In Range(" A2:A11 ")
If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
'store unique count
UniqueCount = List.Count
'display unique count
MsgBox " Count of Unique Values: " & UniqueCount
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
กล่องข้อความบอกเราว่ามีชื่อทีมที่ไม่ซ้ำกัน 5 ชื่อ
เราสามารถตรวจสอบได้ว่าสิ่งนี้ถูกต้องโดยการระบุชื่อทีมที่ไม่ซ้ำกันแต่ละชื่อด้วยตนเอง:
- แมฟ
- ความร้อน
- อวน
- นักรบ
- กษัตริย์
มีชื่อทีมที่แตกต่างกันถึง 5 ชื่อ
หมายเหตุ : หากต้องการนับจำนวนค่าที่ไม่ซ้ำกันในช่วงที่แตกต่างกัน เพียงแทนที่ A2:A11 ใน For Each loop ด้วยช่วงที่แตกต่างกัน
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS