|
ฟังค์ชั่น หรือคำสั่งภายใน Instr มีประโยชน์เอาไว้สำหรับการค้นหาคำที่ต้องการ หากมันค้นหาเจอ ก็จะคืนค่าตำแหน่งแรก ซึ่งเป็นเลขจำนวนเต็มที่เจอกลับไป แต่หากไม่ใช่ก็จะคืนค่ากลับเป็น 0 เมื่อเรารู้หลักการนี้ ก็นำมาประยุกต์ใช้ในการนับจำนวนคำได้นั่นเอง ...
- Option Explicit
- Private Sub Form_Load()
- MsgBox InStrCount("ABCDABEDAASBAABC", "AB")
- 'MsgBox InStrCount("", "AB")
- End
- End Sub
- '// ฟังค์ชั่นการนับคำ ด้วยการประยุกต์คำสั่ง InStr
- Public Function InStrCount( _
- String1 As String, _
- String2 As String, _
- Optional ByVal Pos As Long = 1, _
- Optional Compare As VbCompareMethod = vbBinaryCompare _
- ) As Long
- Dim LenString As Long
- LenString = Len(String2)
-
- '// ความยาวของ String ที่นำมาเปรียบเทียบ ต้องไม่เท่ากับหรือน้อยกว่า 0
- If LenString Then
- '// Trap Error ค่าที่น้อยกว่า 1 (ก็คือค่า 0 นั่นแหละ) ก็กำหนดค่าให้เป็น 1
- If Pos < 1 Then Pos = 1
- '//
- Do
- '// ค้นหาคำด้วยฟังค์ชั่น InStr (In String) หากเจอก็จะคืนค่าตำแหน่งแรกที่เจอ หากไม่ใช่จะคืนค่ากลับเป็น 0
- Pos = InStr(Pos, String1, String2, Compare)
- '// ใช้ตัวแปร Pos เป็นเงื่อนไข หากมีค่าไม่เท่ากับหรือน้อยกว่า 0 ก็ให้นับจำนวนเพิ่มขึ้น 1
- If Pos Then
- '// นับจำนวนครั้งที่ค้นหาเจอ
- InStrCount = InStrCount + 1
- '// เลื่อนตำแหน่งใหม่ โดยคิดจากตำแหน่งที่เจอ + ความยาวของคำค้นหา
- Pos = Pos + LenString
- Else
- Exit Function
- End If
- Loop
- End If
- End Function
คัดลอกไปที่คลิปบอร์ด
|
|