2015-11-23 58 views
1

我有一个电子表格,我们不断向其中添加数据。这些数据从报告中导入并添加到电子表格的末尾。我已经有一个宏来删除重复项。还有一个宏将根据其中一个单元格内容突出显示特定的行,然后制作行的副本并将其粘贴到工作簿中的另一个工作表中。其中一列需要数据,因为它是数据。然而,有时候,这个号码是不可用的,我们输入“RCA Pending”到该单元中。基于多个标准的着色单元格

我需要做的是让该单元格以红色突出显示。但是,一旦数字输入到单元格中,我需要单元格颜色变回'不填充',除非该行从之前运行的宏中突出显示。

Expected result sample

我不反对,如果这是更容易,这些宏结合。

这是上面列出的第一个宏:

' This part highlights all rows that are Disputed 
' Keyboard Shortcut: CTRL+SHIFT+L 

    Dim row As Range 
    For Each row In ActiveSheet.UsedRange.Rows 
     If row.Cells(1, "F").Value = "After Dispute For SBU" Then 
      row.Interior.ColorIndex = 6 
     Else 
      row.Interior.ColorIndex = xlNone 
     End If 
    Next row 

' This part clears the Disputed worksheet and copies all disputed rows to the sheet 

With ThisWorkbook.Worksheets("Disputed") 
Range(.Range("A2"), .UsedRange.Offset(1, 0)).EntireRow.Delete 
End With 

Dim lr As Long, lr2 As Long, r As Long 
lr = Sheets("Master").Cells(Rows.Count, "A").End(xlUp).row 
lr2 = Sheets("Disputed").Cells(Rows.Count, "A").End(xlUp).row 
For r = lr To 2 Step -1 
    If Range("F" & r).Value = "After Dispute For SBU" Then 
     Rows(r).Copy Destination:=Sheets("Disputed").Range("A" & lr2 + 1) 
     lr2 = Sheets("Disputed").Cells(Rows.Count, "A").End(xlUp).row 
    End If 

    Range("A2").Select 
Next r 
Range("C" & Rows.Count).End(xlUp).Offset(1).Select 
End Sub 
+2

您是否尝试了条件格式? – findwindow

+0

是的,但是需要满足的条件和变量太多。 –

+0

所以我会尽力解释这个更好一点,因为我不能添加一个表着色的例子。我们将假定所有必需的数据都适用于第1到第4行(在本例中没有标题,但是在工作簿中)。在第1行中,单元格F1的值为'After Dispute',该行应该是黄色的,在第2行中,所有的单元格值都是数字(如预期的那样)在第3行中,单元格F3的值为'After Dispute'并且单元格K3的值将为'RCA Pending',预期的结果是该行将被填充为黄色,但K3应该填充为红色K4的值为'RCA Pending'并且应该是红色的 –

回答

2

如何只用对数据的条件格式。你会使用像

=$A2="RCA Pending" 

该假设数据在A2开始,有问题的列答:您需要在所有行的选择所有的列,起始于A2,然后公式应用CF

+0

谢谢Martes。 –