我有一系列格式不正确的单元格,我提取的东西不是数字,但单元格的值是文本(字符串),因此IsNumeric无法工作
例如:
4884756921
488475692?
487575e75484
我想找到那些没有改变它的文本
Dim i As Integer
i = 1
'' i is where i'm storing what is found
For j = 1 To Rows.Count
If Len(Cells(j, 4)) = 20 Then
Cells(i, 6).Value = Cells(j, 4)
Cells(i, 7).Value = Cells(j, 4).Row + 1
Cells(j, 4).Value = ""
i = i + 1
End If
Next j
End Sub
答案 0 :(得分:0)
我认为VAL函数可用于测试字符串是否包含非数字值,但似乎VAL不会将“?”符号识别为非数字。 (工作表函数VALUE确实有效,但VALUE不可用作application.WorksheetFunction。
然而,application.WorksheetFunction.IsNonText存在,它会测试单元格是否包含值(并正确地将“?”断言为非数字)。先决条件:单元格格式需要是通用格式或数字格式(不是文本格式)。
=>我希望这会奏效:
If not application.WorksheetFunction.IsNonText(Cells(j, 4))
更简单的解决方案是直接在工作表中使用VALUE函数识别格式不正确的单元格。 (=IFERROR(VALUE(A4),"contains character"
)