Vba 如何获取红色单元格的值?

Vba 如何获取红色单元格的值?,vba,excel,Vba,Excel,我有一个非常简单的脚本,它循环遍历所有单元格并检查它们是否为红色。如果任何单元格是红色的,我想捕获单元格的值,无论它是哪一行和第二列。出于某种原因,我下面的代码将找到正确的红细胞,但它不会捕获红细胞的值。我一定错过了一些简单的东西,但我不知道是什么 基本上,“ValueRed”始终是“” 我非常感谢你的帮助 谢谢 有值的的数据类型是什么 例如,如果其字符串仅使用ValueRed=Cells(i,2),则删除集合 Set是对象所必需的 值的数据类型是什么 例如,如果其字符串仅使用ValueRed

我有一个非常简单的脚本,它循环遍历所有单元格并检查它们是否为红色。如果任何单元格是红色的,我想捕获单元格的值,无论它是哪一行和第二列。出于某种原因,我下面的代码将找到正确的红细胞,但它不会捕获红细胞的值。我一定错过了一些简单的东西,但我不知道是什么

基本上,“ValueRed”始终是“”

我非常感谢你的帮助


谢谢

有值的
的数据类型是什么

例如,如果其字符串仅使用
ValueRed=Cells(i,2)
,则删除
集合

Set
是对象所必需的



值的数据类型是什么

例如,如果其字符串仅使用
ValueRed=Cells(i,2)
,则删除
集合

Set
是对象所必需的



我不太清楚你在这里想要什么。 您希望检查所有单元格,如果它们是红色的,则将该行中B列单元格的值设置为“删除:”&红色单元格值

此代码可以工作(假设每行最多有一个红细胞:)

虽然为了更强壮,我希望每排有多个红色

Dim strReds As String
For i = 1 To R.Rows.Count
    strReds = vbNullString
    For j = 1 To R.Columns.Count
        If Cells(i, j).Interior.ColorIndex = 3 Then
            If strReds = vbNullString Then
                strReds = "Delete: " & Cells(i, j)
            Else
                strReds = strReds & ", " & Cells(i, j)
            End If
        End If
    Next
    Cells(i, 2) = strReds
Next

我不太清楚你在这里想要什么。 您希望检查所有单元格,如果它们是红色的,则将该行中B列单元格的值设置为“删除:”&红色单元格值

此代码可以工作(假设每行最多有一个红细胞:)

虽然为了更强壮,我希望每排有多个红色

Dim strReds As String
For i = 1 To R.Rows.Count
    strReds = vbNullString
    For j = 1 To R.Columns.Count
        If Cells(i, j).Interior.ColorIndex = 3 Then
            If strReds = vbNullString Then
                strReds = "Delete: " & Cells(i, j)
            Else
                strReds = strReds & ", " & Cells(i, j)
            End If
        End If
    Next
    Cells(i, 2) = strReds
Next

为什么两个循环只引用第2列?我知道,我知道。我正在运行另一个进程来检查所有行和列中的黄色单元格。这一部分很好,比红军问题复杂得多。我不知道我错过了什么。它循环进入红细胞,但它不能获取红细胞的值。当你只参考第2列时,为什么会有两个循环?我知道,我知道。我正在运行另一个进程来检查所有行和列中的黄色单元格。这一部分很好,比红军问题复杂得多。我不知道我错过了什么。它会循环进入红细胞,但不会检测到红细胞的值。谢谢!实际上是这样的:ValueRed=Cells(i,3)。Value ColumnB是空的,我真的想检查ColumnC的值。该死我今天要早点回家!!谢谢实际上是这样的:ValueRed=Cells(i,3)。Value ColumnB是空的,我真的想检查ColumnC的值。该死我今天要早点回家!!
For i = 1 To R.Rows.Count
    For j = 1 To R.Columns.Count
         If Cells(i, j).Interior.ColorIndex = 3 Then
             Cells(i, 2) = "Delete: " & cells(i,j)
         End If
    Next
Next
Dim strReds As String
For i = 1 To R.Rows.Count
    strReds = vbNullString
    For j = 1 To R.Columns.Count
        If Cells(i, j).Interior.ColorIndex = 3 Then
            If strReds = vbNullString Then
                strReds = "Delete: " & Cells(i, j)
            Else
                strReds = strReds & ", " & Cells(i, j)
            End If
        End If
    Next
    Cells(i, 2) = strReds
Next