Len返回'Type Mismatch'错误vba

时间:2017-11-23 08:41:45

标签: excel vba excel-vba

我有这个代码检查两列,以查看一个字符串是否包含一个数字,如果是,它将整个行着色为红色。 代码工作正常,直到我今天早上得到一个数据集返回错误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

1 个答案:

答案 0 :(得分:0)

问题是Len()仅适用于字符串参数。

例如,Len(123)将无效,因为123是一个数字,而不是一个字符串(但Len("123")可以正常工作)。

Range的{​​{1}}可能是数字数据类型,在这种情况下不是字符串,但有一种简单的方法可以解决它:只需在值中附加一个空字符串,VBA将将整个事物转换为字符串:

Value

请注意:即使参数是字符串,您仍然可以使用cellValue = Range("M" & u).Value & "" charCount = Len(cellValue) 公式:

isNumeric()