如何检查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