0
A
回答
2
如果你想最簡單的方法,你可以用這個去:
Function MyFunction(myString As String) As Boolean
MyFunction = ((Len(myString) = 5) And (IsNumeric(myString)))
End Function
如果您想要更高效的方法,你必須針對不同的方法運行一些測試人們建議。
編輯:以前的解決方案不能很好地工作(請參閱前2條評論),但我讓它在那裏,因爲它已被接受。這裏是我會做什麼:
Function MyFunction(myString As String) As Boolean
Dim myDouble As Double
Dim myLong As Long
myDouble = Val(myString)
myLong = Int(myDouble/10000)
MyFunction = ((Len(myString) = 5) And (myLong > 0) And (myLong < 10))
End Function
有在功能上沒有錯誤的「保護」,因此,如果你嘗試檢查一個過大的數字,如22222222222222,它不會工作。
4
yourString Like "#####"
1
1
您還可以使用正則表達式來解決此問題。如果在VBA項目中包含Microsoft VBScript Regular Expressions 5.5,則可以使用RegExp
和MatchCollection
變量,如下面的函數中所示。 (這是在ozgrid.com應對this post的變形例。)
Public Function FiveDigitString(strData As String) As Boolean
On Error GoTo HandleError
Dim RE As New RegExp
Dim REMatches As MatchCollection
With RE
.MultiLine = False
.Global = False
.IgnoreCase = True
.Pattern = "^[0-9][0-9][0-9][0-9][0-9]$"
End With
Set REMatches = RE.Execute(strData)
If REMatches.Count = 1 Then
FiveDigitString = True
Else
FiveDigitString = False
End If
Exit Function
HandleError:
Debug.Print "Error in FiveDigitString: " & Err.Description
FiveDigitString = False
End Function
相關問題
- 1. 字符串操作(確保字符串總是以完全相同「//」前面)
- 2. 如何編寫確保字符串正好是5位數字的Java代碼
- 3. 確保字符串每n個字符都有一箇中斷字符
- 4. 確保字符串中沒有整數?
- 5. 如何確保在一個字符串中只有一個http://?
- 6. 字符串完全匹配
- 7. 完全修剪字符串
- 8. 1000個數字的字符串,找到沒有數組的最大5位數
- 9. 完全替換多個字符串
- 10. 把字符放在一個精確的字符串位置
- 11. 確定一個字符串中有多少個數字
- 12. Jmock完全匹配字符串參數
- 13. 選擇第一5個字符,在C#字符串數組
- 14. 位移一個字符串
- 15. Ruby只用另一個字符串替換完全匹配的字符串
- 16. 確保字符串中有\ n以特定字符串結尾
- 17. 將三個字完全讀入一個字符數組中
- 18. 確定一個字符串是不是另一個字符串
- 19. 分割字符串,每5個字符
- 20. 在字符串中完全匹配2個字符 - SQL
- 21. 確保在字符串
- 22. 確保在字符串
- 23. 1000個數字的字符串,使用子串方法找到最大的5位數字,沒有數組
- 24. ASP:的RegularExpressionValidator,確保有一個字符串
- 25. 確保字符串是一個有效的CSS ID名稱
- 26. 字符串到base64字節,完全相同的文字字符
- 27. 將數字轉換爲5位數字符串
- 28. 解析字符串,並確保它ontains一個9位數的號碼
- 29. 加密一個字符串5
- 30. 確定一個字符串有特殊字符
四位數負數將通過這兩個測試 - 例如-3621有五個字符並且是數字。小數點(36.21)或千分隔符(3,621)也會導致問題 – barrowc 2010-11-20 03:06:03
夠正確!另外,如果字符串是「00005」,它會通過我認爲的驗證。 – Tipx 2010-11-25 18:26:12