Vba: วิธีนับจำนวนอักขระในสตริง


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อนับจำนวนอักขระในสตริงโดยใช้ VBA:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

ตัวอย่างนี้จะนับจำนวนครั้งของเครื่องหมายทับ ( / ) ที่เกิดขึ้นในแต่ละเซลล์ในช่วง B2:B12 และแสดงผลลัพธ์ในช่วง C2:C12

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: การนับจำนวนอักขระในสตริงโดยใช้ VBA

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่แสดงชื่อของผู้เล่นบาสเกตบอลต่างๆ และตำแหน่งที่พวกเขาสามารถเล่นในเกมได้:

สมมติว่าเราต้องการนับจำนวนเครื่องหมายทับ ( / ) ในแต่ละสตริงในคอลัมน์ตำแหน่ง

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

ค่าในคอลัมน์ C แสดงจำนวนครั้งของเครื่องหมายทับในสตริงที่ตรงกันในคอลัมน์ B

ตัวอย่างเช่น:

  • สตริง Guard /Forward มี 1 เครื่องหมายทับ
  • สตริง Guard มีเครื่องหมายทับ 0 ตัว
  • สตริง Guard มีเครื่องหมายทับ 0 ตัว
  • สตริง Forward/Center มีเครื่องหมายทับ 1 อัน

และอื่นๆ

หากต้องการนับจำนวนอักขระที่แตกต่างกัน เพียงเปลี่ยนอักขระของตัวแปร my_char ในมาโคร

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *