根据另一个工作表中的值更改单元格的颜色?

我试图改变颜色的单元格基于价值fron另一张

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 

当我运行这些代码上面我得到“types不匹配”的错误,因为

x =工作表(“outlier_index”)。单元格(i,j)。值

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

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

您可以轻松修改您的代码以跳过包含string的单元格:

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

如果您的工作表中还有非整数,则可能需要进一步修改。

X应该是一个string。 单元格的值将被存储为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