Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;运行时错误13:类型不匹配;VBA Excel中的错误_Excel_Vba - Fatal编程技术网

&引用;运行时错误13:类型不匹配;VBA Excel中的错误

&引用;运行时错误13:类型不匹配;VBA Excel中的错误,excel,vba,Excel,Vba,我有一本Excel工作手册,其中对于一系列单元格,我想检查某些条件,如“大于10”、“介于5和10之间”,并相应地为值着色。该文件还包含空白值和NA(N和A字符)值。 数据样本如下图所示 我使用了下面的代码 For n= 1 o 10 For Each c In Worksheets(n).Range("A1:A10").Cells If Abs(c.Value) > 10 Then c.Interior.Color = vbRed ElseIf Abs(c.Value) <

我有一本Excel工作手册,其中对于一系列单元格,我想检查某些条件,如“大于10”、“介于5和10之间”,并相应地为值着色。该文件还包含空白值和NA(N和A字符)值。 数据样本如下图所示

我使用了下面的代码

For n= 1 o 10

For Each c In Worksheets(n).Range("A1:A10").Cells

If Abs(c.Value) > 10 Then
c.Interior.Color = vbRed
ElseIf Abs(c.Value) < 10 And Abs(c.Value) > 5 Then
c.Interior.Color = vbBlue
ElseIf c.Value = "NA" Or c.Value = " " Then
GoTo nofunction
End If
nofunction:
Next

Next n
n=1 o 10时的

对于工作表(n)中的每个c.范围(“A1:A10”).单元格
如果Abs(c值)>10,则
c、 内饰。颜色=vbRed
如果Abs(c.Value)<10且Abs(c.Value)>5,则
c、 内饰。颜色=蓝色
否则c.Value=“NA”或c.Value=”“然后
去野功能
如果结束
无功能:
下一个
下一个
运行此代码时,我收到错误“运行时错误13:类型不匹配”

我认为问题在于条件ElseIf c.Value=“NA”或c.Value=”“

有人能帮我克服这个错误吗


感谢您首先测试数值:

For n= 1 o 10
    For Each c In Worksheets(n).Range("A1:A10").Cells
        v = c.Value
        IfIsNumeric(v) Then
            If Abs(v) > 10 Then
                c.Interior.Color = vbRed
            ElseIf Abs(v) < 10 And Abs(v) > 5 Then
                c.Interior.Color = vbBlue
            End if
        End If
    Next
Next n
n=1 o 10时的

对于工作表(n)中的每个c.范围(“A1:A10”).单元格
v=c.值
如果是数字(v)那么
如果Abs(v)>10,则
c、 内饰。颜色=vbRed
如果Abs(v)<10且Abs(v)>5,则
c、 内饰。颜色=蓝色
如果结束
如果结束
下一个
下一个
非常感谢:)这正是我想要的!!