2016-08-08 44 views
-1

如果值出錯,我有條件地格式化工作表以更改單元格的顏色。這用於數據驗證,用戶可以一次將大量數據剪切並粘貼到工作表中。使用條件格式查找單元格

我想編寫一個宏(我將鏈接到一個按鈕),找到並轉到第一個單元格,使用條件格式,然後下一個等。到目前爲止,沒有運氣。如果這最終是不可能的,我可能會刪除條件格式並使宏變化單元格顏色,以便使用VBA可以更輕鬆地檢測到它。

如果沒有與

如果ActiveCell.DisplayFormat.Interior.Color <> 16777215

任何條件格式,但我有麻煩把它變成一個尋子我能察覺。

更具體地說,列A-AF具有值,如果它們不符合條件,則它們被格式化爲紅色。我想要找到按鈕的副本,但條件格式。有沒有人有什麼建議。我看到過類似的問題,但他們似乎在要求計數或總數,這並不是我所需要的。提前致謝。

+1

請勿對Excel/VBA宏問題使用[宏]標記。它的標籤信息特別指出,*不適用於MS-OFFICE/VBA /宏語言。改爲使用相應的標籤。*' –

+1

謝謝亞歷克斯,我很抱歉,將來不會將其作爲標籤。 –

+0

@Matthew Ingle ...愚蠢的問題,但你不能通過查看錶單找到他們,是不是條件格式是什麼?現在,如果你想把所有這些單元格放到一個數組中,那麼你可能需要幫助。 – dinotom

回答

0

使用Excel中的「轉到特殊」功能。

在主屏幕上,單擊查找並選擇>轉至特殊。

然後選擇條件格式選項。單擊確定,將選擇具有條件格式的所有單元格。

1

這裏是一個函數,它返回一個單元格地址數組,它已經有條件地用淺紅色背景進行了格式化。編輯以適合您的目的。

Public Function FindConditionals() As Variant 
    Dim ws As Worksheet, cCell As Range, cntr As Integer 
    Dim formattedCells(100) As Variant ' I would used the number of cells in used range here 
    Set ws = ActiveSheet 
    cntr = 1 

    For Each cCell In ws.UsedRange 
     If cCell.DisplayFormat.Interior.Color = 13551615 Then ' put your own color in 
      formattedCells(cntr) = cCell.Address 
      cntr = cntr + 1 
     End If 
    Next cCell 
    FindConditionals = formattedCells 
End Function