2017-06-02 25 views
1

我正在使用此代碼查找某個顏色(由條件格式更改)的單元格,然後根據該行中的值交換到另一個表格。但是,宏運行,只是沒有找到任何東西。沒有錯誤消息,它只是沒有定位任何單元格(我已經切換到RGB 255,0,0爲這個測試)。我在這裏做錯了什麼?使用特定內部顏色查找單元格

Sub ChangeAccountDetailsForMay() 

Dim ws As Worksheet 
Set ws = Sheets("comparison") 
Dim destws As Worksheet 
Set destws = Sheets("Account Detail") 
Dim i As Integer 
Dim j As Integer 

For i = 24 To 3205 
    If ActiveWorkbook.Sheets("comparison").Range("BF" & i).Interior.Color = RGB(255, 0, 0) Then 'Might be RGB 218 148 148 
     MsgBox "Found one at row " & i & "!" 
     For j = 25 To 3077 
      If ActiveWorkbook.Sheets(destws).Range("J" & j).Value = ActiveWorkbook.Sheets(ws).Range("J" & i).Value And ActiveWorkbook.Sheets(destws).Range("L" & j).Value = ActiveWorkbook.Sheets(ws).Range("L" & i).Value Then 
       ActiveWorkbook.Sheets(destws).Range("BD" & j).Value = ActiveWorkbook.Sheets(ws).Range("BB" & i).Value 
       ActiveWorkbook.Sheets(destws).Range("BE" & j).Value = ActiveWorkbook.Sheets(ws).Range("BC" & i).Value 
       ActiveWorkbook.Sheets(destws).Range("BF" & j).Value = ActiveWorkbook.Sheets(ws).Range("BD" & i).Value 
      End If 
     Next j 
    End If 
Next i 

MsgBox "Done!", vbInformation, "Success!" 
End Sub 
+2

使用'.DisplayFormat':'...範圍( 「BF」 &I).DisplayFormat .Interior.Color ...' –

+0

繁榮,你明白了。謝謝Scott- – dwirony

+2

@ScottCraner這是一個有效的答案。您可能希望將其發佈給未來的訪問者? –

回答

2

要獲得從條件格式提供的單元格的顏色必須使用DisplayFormat

...Range ("BF" & i).DisplayFormat.Interior.Color... 
+1

值得注意的是,這僅適用於Excel 2010及更高版本 –

+0

++感謝您將它作爲答案:) –

相關問題