[英]Finding Highest Number from string in cell through excel formula or VBA
[英]Finding a number in a string in excel VBA
我試圖在excel vba中通過文本框提供的字符串中找到一個數字,並顯示一條錯誤消息,指出它無法繼續,此后必須停止加載下面的代碼。
fname是用戶指定的全名
If InStr(fname, "0") Then
MsgBox ("Number Found In Your Name. Please Correct That!!")
Dim i(0 To 9) As String
i(0) = "0"
i(1) = "1"
i(2) = "2"
i(3) = "3"
i(4) = "4"
i(5) = "5"
i(6) = "6"
i(7) = "7"
i(8) = "8"
i(9) = "9"
If InStr(fname, "0") Then
MsgBox ("Number Found In Your Name. Please Correct That!!")
End If
如果它包含一個數字(數字列表),則應該搜索用戶給出的文本並顯示錯誤
InStr函數不是布爾值,它返回整數值。 如果您的搜索表達式(例如“ 0”)在string(fname)內,它將為您提供字符串(fname)的第n個數字。 否則,它返回零。 因此,您可以嘗試如下代碼:
For i=0 to 9
If InStr(fname, i)>0 Then
MsgBox ("Number Found In Your Name. Please Correct That!!")
End If
Next i
也許是一個簡單的答案,但是Cstr()將整數更改為字符串。
For i = 0 To 9
If InStr(fname, CStr(i)) Then
MsgBox ("Number Found In Your Name. Please Correct That!!")
Exit For
End If
Next
無需循環,只需一行即可完成:
If Fname like "*[0-9]*" Then MsgBox ("Number Found In Your Name. Please Correct That!!")
正則表達式是最好的方法,但是循環也可以工作:
Sub dural()
Dim s As String, i As Long
s = "james"
For i = 0 To 9
If InStr(1, s, CStr(i)) > 0 Then
MsgBox ("Number Found In Your Name. Please Correct That!!")
Exit Sub
End If
Next i
End Sub
您可以嘗試實現“評估”
If Evaluate("COUNT(FIND(ROW(1:10)-1,""" & fname & """))") > 0 then
Msgbox "Number Found In Your Name. Please Correct That!!"
End if
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.