excel - 检查整列的颜色

标签 excel vba

我正在尝试创建一个 if 语句来检查 B 列的颜色。

如果我定位 B 列中的单个单元格,而不是尝试(“B:B”),则它会起作用。

这就是我所拥有的。

Sub FOO()

    Dim answer As Range

    Set answer = Range("b:b")

    If answer.Interior.Color = vbRed Then

        MsgBox ("There is an issue with column B, please review.")

    End If

End Sub

最佳答案

由于我们获得了许多高质量的答案,因此这里是最优化的代码。我打赌最快:)

如果您使用的是旧版本的 Excel 之一,它将无法工作。 2007 年以上的任何内容都可以。

Sub OptimizedFOO()

    Dim rngTemp

    With Application.FindFormat.Interior
        .Color = vbRed
    End With

    '/ Sheet1 is example sheet name
    Set rngTemp = Sheet1.Columns(2).Find(What:="", SearchFormat:=True)

    If Not rngTemp Is Nothing Then
          MsgBox ("There is an issue with column B, please review.")
    End If

End Sub

旧答案

Sub FOO()

    Dim answer As Range
    Dim cell   As Range

    '/ This will show message if at least one cell is found with red color

    Set answer = Range("b:b")
    For Each cell In answer.Cells

        If answer.Interior.Color = vbRed Then

            MsgBox ("There is an issue with column B, please review.")
            Exit For

        End If
    Next

End Sub

关于excel - 检查整列的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41766490/

相关文章:

excel - 在公式vba中使用最新的工作表

R:隐藏包含 xlsx 包的工作表

python - Openpyxl 次要网格线

vba - 根据最后一行生成一个直接的数字序列

VBA 创建字典聚合值

excel - 工作簿是只读的,再试一次

excel - 如何计算包含特定文本字符串的表格列中的单元格(COUNT.IF 不起作用)

regex - 使用 VBA 从文本文件写入 Excel 时保留 "columns"

sql-server - 在 VBA 中将记录集存储到数组

excel - 如何计算Excel中的连续值?