Vba 查找具有条件格式的单元格

Vba 查找具有条件格式的单元格,vba,excel,Vba,Excel,我有条件地格式化了工作表,以便在值出错时更改单元格的颜色。这是用于数据验证,用户可以立即将大量数据剪切并粘贴到工作表中 我想写一个宏(我将链接到一个按钮)来查找并转到第一个具有条件格式的单元格,然后是下一个单元格,等等。到目前为止,运气不好。如果这最终不可能实现,我可以删除条件格式,并使用宏更改单元格颜色,以便使用VBA更容易地检测到 我可以检测是否有任何条件格式与 如果ActiveCell.DisplayFormat.Interior.Color 16777215 但我在把它放进潜水艇时遇到了

我有条件地格式化了工作表,以便在值出错时更改单元格的颜色。这是用于数据验证,用户可以立即将大量数据剪切并粘贴到工作表中

我想写一个宏(我将链接到一个按钮)来查找并转到第一个具有条件格式的单元格,然后是下一个单元格,等等。到目前为止,运气不好。如果这最终不可能实现,我可以删除条件格式,并使用宏更改单元格颜色,以便使用VBA更容易地检测到

我可以检测是否有任何条件格式与

如果ActiveCell.DisplayFormat.Interior.Color 16777215

但我在把它放进潜水艇时遇到了麻烦

更具体地说,A-AF列具有值,如果不满足条件,则将其格式化为红色。我想要一个“查找”按钮的副本,但用于条件格式。有人有什么建议吗。我见过类似的问题,但他们似乎在问计数或总数,而这并不是我真正需要的。提前感谢。

使用Excel中的“转到特殊”功能

在主功能区上,单击“查找”,然后选择“转到特殊”


然后选择条件格式选项。单击“确定”,将选择所有具有条件格式的单元格。

这里有一个函数,它返回一个单元格地址数组,这些单元格地址已以浅红色背景条件格式化。编辑以适合您的目的

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

不要对Excel/VBA宏问题使用[macros]标记。它的标签信息特别指出,
*不适用于MS-OFFICE/VBA/macro语言。请使用相应的标记。*
谢谢Alex,我很抱歉,以后不再将其作为标记使用。@Matthew Ingle…愚蠢的问题,但你不能通过查看工作表来找到它们,这不是条件格式的作用吗?现在,如果你想把所有这些单元格放入一个数组,那么你可能需要帮助。我知道你在说什么,@ChrisB我确实知道这个函数。这有点令人沮丧,因为我可以做这些事情,但是这张表被公司内不同的用户使用,在不同的时区,国家等等。这个想法是为了让这一切都透明化。我想我只是要用一个宏来改变颜色,这样就可以找到它。无论如何,谢谢!