1

需要你的帮助。在我的电子表格中,有一个宏在激活时测试以查看整个数据集中的单元格颜色是否为粉红色。如果找到一个,则第一个单元格被标记为粉红色,提醒我在该特定行上某处有一个粉红色单元格。

一旦我注意到粉红色的单元格,我再次将其标记为透明并继续下一个。

我需要在下面的工作代码中添加一个测试,看看是否没有粉红色.. 即..

如果单元格 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 变为透明等等。

有什么建议么 ?

4

1 回答 1

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
于 2013-05-09T23:46:33.930 回答