我试图根据另一张纸上的值来改变单元格的颜色
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
当我运行上面这些代码时,由于
而出现“类型不匹配”错误x =工作表(“outlier_index”)。单元格(i,j).Value
有人可以帮我解决问题吗?
答案 0 :(得分:1)
X应该是一个字符串。单元格中的值将存储为String。 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
答案 1 :(得分:1)
如上所述,当单元格的值不是整数时,可能会发生类型不匹配错误。
您可以轻松修改代码以跳过包含字符串的单元格:
If IsEmpty(Worksheets("outlier_index").Cells(i, j)) Or Not _
IsNumeric(Worksheets("outlier_index").Cells(i, j)) Then Exit For
如果工作表中也有非整数数字,则可能需要进一步修改它。