我有一个非常简单的脚本循环遍历所有单元格并检查它们是否为红色。如果任何单元格是红色的,我想捕获单元格的值,无论它是什么行和ColumnB。出于某种原因,我的下面的代码将找到正确的红色单元格,但它不会捕获单元格的值。我必须在这里遗漏一些简单的东西,但我不知道它是什么。
基本上,' ValueRed'总是""。
For i = 1 To R.Rows.Count
For j = 1 To R.Columns.Count
If Cells(i, 2).Interior.ColorIndex = 3 Then
Set ValueRed = Cells(i, 2)
finalsetred = "Delete: " & ValueRed
End If
Next
Next
我非常感谢你提供一些帮助。
谢谢!
答案 0 :(得分:2)
ValueRed
的数据类型是什么?
如果其字符串仅使用ValueRed = Cells(i, 2)
,请删除Set
Set
。
For i = 1 To R.Rows.Count
For j = 1 To R.Columns.Count
If Cells(i, 2).Interior.ColorIndex = 3 Then
ValueRed = Cells(i, 2)
finalsetred = "Delete: " & ValueRed
End If
Next
Next
答案 1 :(得分:2)
不太清楚你在这之后会发生什么。 您想要检查所有单元格,如果它们是红色的,那么将该行中的B列单元格的值设置为“删除:”&红细胞值?
此代码可以工作(假设每行最多一个红色单元格:)
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