如何检查Excel电子表格中的单元格是否包含数字
我有一列地址,我必须find那些不包含街道号码的地址。 不幸的是,地址是由各种用户input的,他们不遵循相同的模式,所以街道types,街道名称,郊区的顺序不同,我不能使用LEFT,RIGHT或MID等function来检查特定字符是否是数。 该列看起来像这样:
10 Willsons Drive, Manhattan Epping, 23 Wet Rd Longsdale St, Kingsbury 11 Link Crt, Pakenham
有一个Excel或VBA函数可以告诉我,如果单元格/string包含数字?
把它放到一个模块中,然后在你的工作表中,可能是它旁边的一列,把公式=HaveNumbers(A2)
并检查你是否想要它(真/假)。 你可以把它改成返回一个string。 这返回TRUE / FALSE。
Function HaveNumbers(oRng As Range) As Boolean Dim bHaveNumbers As Boolean, i As Long bHaveNumbers = False For i = 1 To Len(oRng.Text) If IsNumeric(Mid(oRng.Text, i, 1)) Then bHaveNumbers = True Exit For End If Next HaveNumbers = bHaveNumbers End Function
没有一个VBA函数可以做你想做的,但是下面的函数应该可以做到这一点:
Public Function ContainsNumbers(Inp As String) As Boolean Dim Strings() As String, Str As Variant Strings = Split(Inp, " ") For Each Str In Strings If IsNumeric(Str) Then ContainsNumbers = True Exit For End If Next End Function
然后把一些像=ContainsNumbers(A1)
在附近的单元格。
感谢Monty。 在我的情况下,数字并不总是与单词分开,所以我不得不遍历每个字符。 我使用以下内容:
Function ContainsNumber(text As String) 'checks if given cell contains number For i = 1 To Len(text) If IsNumeric(Mid$(text, i, 1)) Then ContainsNumber = True Exit Function End If Next ContainsNumber = False End Function