2012-02-13 22 views

答えて

10

count = CountChrInString(yourString, "/")のように、以下の関数を使用します。

''' 
''' Returns the count of the specified character in the specified string. 
''' 
Public Function CountChrInString(Expression As String, Character As String) As Long 
' 
' ? CountChrInString("a/b/c", "/") 
' 2 
' ? CountChrInString("a/b/c", "\") 
' 0 
' ? CountChrInString("//////", "/") 
' 6 
' ? CountChrInString(" a/b/c ", "/") 
' 2 
' ? CountChrInString("a/b/c", "/") 
' 0 
' 
    Dim iResult As Long 
    Dim sParts() As String 

    sParts = Split(Expression, Character) 

    iResult = UBound(sParts, 1) 

    If (iResult = -1) Then 
    iResult = 0 
    End If 

    CountChrInString = iResult 

End Function 
+0

ないハンガリアン記法の大ファンが、おかげでコメントを追加:-) – assylias

17

古い質問ですが、私はExcelのフォーラムで見つけた回答で回答の質を高めると思いました。どうやら、カウントはまたを使用して見つけることができます。これは、VBAエクセルマクロのための容易なソリューションですhttp://www.ozgrid.com/forum/showthread.php?t=45651

+1

ハ!私はちょうどそのことを考えましたが、もっと良い解決策があるかどうかここに来ました。 – GuitarPicker

0

:答えを

count =Len(string)-Len(Replace(string,"/","")) 

フル・クレジットはで、元の作者に行きます。あなたはパフォーマンスにしている場合

Function CharCount(str As String, chr As String) As Integer 
    CharCount = Len(str) - Len(Replace(str, chr, "")) 
End Function 
+0

あなたの答えはSanthosh Divakar'sと何が違うのですか? –

3
Function Count(str as string, character as string) as integer 
     Count = UBound(Split(str, character)) 
End Function 
0

ところで、以下は、カウントを決定するために、スプリットを使用して、または交換するよりも20%高速である:

Private Function GetCountOfChar(_ 
    ByRef ar_sText As String, _ 
    ByVal a_sChar As String _ 
) As Integer 
    Dim l_iIndex As Integer 
    Dim l_iMax As Integer 
    Dim l_iLen As Integer 

    GetCountOfChar = 0 
    l_iMax = Len(ar_sText) 
    l_iLen = Len(a_sChar) 
    For l_iIndex = 1 To l_iMax 
    If (Mid(ar_sText, l_iIndex, l_iLen) = a_sChar) Then 'found occurrence 
     GetCountOfChar = GetCountOfChar + 1 
     If (l_iLen > 1) Then l_iIndex = l_iIndex + (l_iLen - 1) 'if matching more than 1 char, need to move more than one char ahead to continue searching 
    End If 
    Next l_iIndex 
End Function 
関連する問題