我有这个代码检查两列,以查看一个字符串是否包含一个数字,如果是,它将整个行着色为红色。 代码工作正常,直到我今天早上得到一个数据集返回错误13'类型不匹配'。 你可以帮我解决因果吗?为什么会这样? 提前谢谢。
Dim u As Long, j As Long, LR As Long, charCount As Long
LR = Range("M" & Rows.count).End(xlUp).Row
For u = 1 To LR
charCount = Len(Range("M" & u).Value)
For j = 1 To CharCount
If IsNumeric(Mid(Range("M" & u).Value, j, u)) Or IsNumeric(Mid(Range("N" & u).Value, j, u)) Then
Range("M" & u).EntireRow.Interior.ColorIndex = 3 'Red
GoTo BailOuty
End If
Next j
BailOuty:
Next u
答案 0 :(得分:0)
问题是Len()
仅适用于字符串参数。
例如,Len(123)
将无效,因为123是一个数字,而不是一个字符串(但Len("123")
可以正常工作)。
Range
的{{1}}可能是数字数据类型,在这种情况下不是字符串,但有一种简单的方法可以解决它:只需在值中附加一个空字符串,VBA将将整个事物转换为字符串:
Value
请注意:即使参数是字符串,您仍然可以使用cellValue = Range("M" & u).Value & ""
charCount = Len(cellValue)
公式:
isNumeric()