2016-04-28 86 views

回答

0
精確副本

你的問題是一點點在缺少細節,但如何:

Sub test() 

    Debug.Print containsXnumbers("KT150", 3) 

End Sub 

Function containsXnumbers(sInput As String, xNumbers As Long) As Boolean 

    Dim x As Long 
    Dim numCount As Long 

    For x = 1 To Len(sInput) 
     If IsNumeric(Mid(sInput, x, 1)) Then numCount = numCount + 1 
    Next x 

    If numCount = xNumbers Then containsXnumbers = True 

End Function 
+0

完美!非常感謝:) –

+0

嗨,你知道一種方法來確保最後3個字符是數字嗎? –

0

這應有助於:

Function onlyDigits(s As String) As String 
    ' Variables needed (remember to use "option explicit"). ' 
    Dim retval As String ' This is the return string.  ' 
    Dim i As Integer  ' Counter for character position. ' 

    ' Initialise return string to empty      ' 
    retval = "" 

    ' For every character in input string, copy digits to  ' 
    ' return string.          ' 
    For i = 1 To Len(s) 
     If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Then 
      retval = retval + Mid(s, i, 1) 
     End If 
    Next 

    ' Then return the return string.       ' 
    onlyDigits = retval 
End Function 

例子:

Dim myStr as String 
myStr = onlyDigits ("3d1fgd4g1dg5d9gdg") 
MsgBox (myStr) 

將返回(在消息框中):

314159 

*代碼是this SO answer

+0

我怎麼會增加對有多少個數字計數器?我試過.Count功能,但似乎並沒有開箱即用。 –

+0

您可以保留一個計數器變量並在if條件中的For循環中增加它。 – Dev

+1

或者只是把'Len(myStr)'作爲輸出。 –

1

你不需要VBA得到一個字符串的位數,但這裏是一個方法來計算他們:

Public Function KountNumbers(r As Range) As Long 
    Dim i As Long, t As String 

    t = r.Text 
    For i = 1 To Len(t) 
     If Mid(t, i, 1) Like "[0-9]" Then KountNumbers = KountNumbers + 1 
    Next i 
End Function 

例如:

enter image description here

沒有VBA試試這個:

=SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},""))) 

獲得數字的數量。

+0

我需要r是字符串,並儘可能返回字符串 –

+0

@JV我不明白。 –

0

嘗試使用以下公式

假設您的數據在A1中。應用下面的公式B1

=IF(AND(LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9",""),"0",""))=2,LEN(A1)=5),"3 character numerals","No 3 numerals found") 

enter image description here

相關問題