Vba: วิธีนับเซลล์ด้วยข้อความเฉพาะ
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อนับจำนวนเซลล์ในช่วงที่มีข้อความเฉพาะโดยใช้ VBA:
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
ตัวอย่างนี้จะนับจำนวนเซลล์ในช่วง A2:A13 ที่มี “avs” จากนั้นกำหนดผลลัพธ์ให้กับเซลล์ D2
หมายเหตุ : เครื่องหมายดอกจัน ( * ) ถูกใช้เป็นไวด์การ์ดในฟังก์ชัน Countif
ถ้าคุณต้องการแสดงจำนวนเซลล์ในกล่องข้อความแทน คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), "* avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

ตัวอย่างที่ 1: นับเซลล์ด้วยข้อความเฉพาะโดยใช้ VBA และแสดงผลลัพธ์ในเซลล์
สมมติว่าเราต้องการนับจำนวนเซลล์ที่มี “avs” ในชื่อทีมและแสดงผลในเซลล์ใดเซลล์หนึ่ง
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดสังเกตว่าเซลล์ D2 มีค่า 5
สิ่งนี้บอกเราว่ามี 5 เซลล์ในช่วง A2:A13 ที่มี “avs” อยู่ในชื่อทีม
ตัวอย่างที่ 2: นับเซลล์ด้วยข้อความเฉพาะโดยใช้ VBA และแสดงผลลัพธ์ในกล่องข้อความ
สมมติว่าเราต้องการ นับจำนวนเซลล์ที่มี “avs” และแสดงผลลัพธ์ในกล่องข้อความ
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

กล่องข้อความบอกเราว่ามี 5 เซลล์ที่มี “avs” อยู่ในชื่อทีม
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: สูตรง่ายๆ สำหรับ “ถ้าเซลล์มี”
VBA: วิธีนับจำนวนอักขระในสตริง
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่