2017-10-14 71 views
0

我米试图基于值氟利昂另一片以改变细胞的颜色根据另一个工作表的值更改单元格的颜色?

Sub ColoredOutlier() 

    Dim i As Integer, j As Integer, x As Integer 

    For i = 1 To 50 

     For j = 2 To 23 

      If IsEmpty(Worksheets("outlier_index").Cells(i, j)) Then Exit For 

      x = Worksheets("outlier_index").Cells(i, j).Value 

      Worksheets("Sheet2").Cells(x+1, i).Interior.ColorIndex = 3 

     Next j 

    Next i 

End Sub 

当运行这些代码以上我m到处“类型不匹配”错误becasue的

X =工作表(” outlier_index“)。Cells(i,j).Value

任何人都可以帮我解决我的问题吗?

+0

类型不匹配可能会告诉您,(i,j)处的outlier_index单元格的值不是整数。可能先尝试记录单元格的值。例如:''对于i,for j,val = Worksheets(“outlier_index”)。cells(i,j).value Debug.Print“Value at i =”,i,“and j =”,j,“是“,val'''我很抱歉,我没有擅长这个比赛来测试你。 – jessi

回答

1

如所建议的上述类型不匹配错误时,单元格的值不是整数,可能会发生。

您可以轻松地修改代码以跳过包含字符串细胞:

If IsEmpty(Worksheets("outlier_index").Cells(i, j)) Or Not _ 
IsNumeric(Worksheets("outlier_index").Cells(i, j)) Then Exit For 

你可能需要修改它,如果远一点,你在你的片材具有非整数太大。

1

X应该是一个字符串。单元格中的值将以字符串形式存储。这里不应该使用x。

Worksheets("Sheet2").Cells(i, x).Interior.ColorIndex = 3 

它应该是

Worksheets("Sheet2").Cells(i, j).Interior.ColorIndex = 3 

总之:

Sub ColoredOutlier() 
Dim i As Integer, j As Integer, x As String 

For i = 1 To 50 

    For j = 2 To 23 

     If IsEmpty(Worksheets("outlier_index").Cells(i, j)) Then Exit For 

     x = Worksheets("outlier_index").Cells(i, j).Value 
     Worksheets("Sheet2").Cells(i, j).Interior.ColorIndex = 3 

    Next j 

Next i 

End Sub 
+0

但我需要将“x”的值作为一个整数,然后根据“x”更改另一个工作表单元格的颜色 –

+0

我不明白 X是单元格的值。你想使用这个值的东西? – Valli

+0

我的意思是我需要得到“工作表(”outlier_index“)。单元格(i,j).Value”的值作为我称之为“x”的整数,而我知道“x”是我的异常值矩阵的行nuber。最后我想用x改变行数据的颜色 –

相关问题