需要你的帮助。在我的电子表格中有一个宏,当激活测试时,查看整个数据集中的单元格颜色是否为粉红色。如果找到一个,那么第一个细胞被标记为粉红色,警告我,在那个特定的行上某处有一个粉红色的细胞。
一旦我注意到粉红色的细胞,我再次将其标记为透明,然后转到下一个细胞。
我需要在下面的工作代码中添加一个测试,看看是否没有粉红色..即..
如果单元格A9是粉红色,则表示第9行的某处有粉红色。我需要检查它是否仍在那里,如果没有让A9透明。
下面的代码是标记A9粉红色的代码(根据上面的示例。
代码:
Sub pink()
Dim rcell As Range
For Each rcell In Range(Cells(1, 1), Cells(1, ActiveSheet.UsedRange.Columns.Count))
If rcell.Interior.ColorIndex = 38 Then
Cells(ActiveSheet.UsedRange.Rows.Count, rcell.Column).Select
Do Until ActiveCell.Interior.ColorIndex = rcell.Interior.ColorIndex
ActiveCell.Offset(-1).Select
Loop
If ActiveCell.Row = rcell.Row Then rcell.Interior.ColorIndex = xlNone
End If
Next rcell
For Each rcell In ActiveSheet.UsedRange
If rcell.Interior.ColorIndex = 38 Then
Cells(rcell.Row, 1).Interior.ColorIndex = 38
End If
Next rcell
End Sub
贯穿一个场景:
第1行是标题并被排除在外,A列是事物被标记为粉红色的列。
B8是粉红色,因此当宏运行时,A8变为粉红色,D14变为粉红色,因此A14变为粉红色,A18变为粉红色,但第18行中没有粉红色,因此A18变为透明等等。
有什么建议吗?
答案 0 :(得分:1)
您可以运行以下透明程序。如果该行中没有粉红色单元格,它将使column A
中的单元格透明。
Sub transparent()
Dim lastRow As Long, rcell As Range, blnRed As Boolean
lastRow = ActiveSheet.UsedRange.Rows.Count
For i = 1 To lastRow
If Cells(i, 1).Interior.ColorIndex = 38 Then
For Each rcell In Range(Cells(i, 2), Cells(i, ActiveSheet.UsedRange.Columns.Count))
If rcell.Interior.ColorIndex = 38 Then
blnRed = True
Exit For
Else
blnRed = False
End If
Next
If blnRed = False Then
Cells(i, 1).Interior.Pattern = xlNone
End If
End If
Next
End Sub