2017-10-14 75 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改變行數據的顏色 –

相關問題