2013-05-09 59 views
1

需要您的幫助。在我的電子表格中有一個宏,它在激活時測試以查看整個數據集中的單元格顏色是否爲粉紅色。如果發現其中一個,那麼第一個單元格就會顯示爲粉紅色,並提醒我注意到在該特定行的某處存在粉紅色單元格。通過宏在整個工作表上進行條件格式化

一次,我已經關注了粉紅色的,我將其標記透明再次移動到下一個。

我需要添加到下面的工作代碼是一個測試,看看有沒有粉紅色..即..

如果單元格A9是粉紅色則意味着某處第9行有一個粉紅色的。我需要檢查它是否仍然存在,如果不使A9透明。

下面的代碼是標記A9粉紅(按照上面的例子中的一個

代碼:

行1是標題和有:

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 

要通過場景中運行排除A列就是事情標記爲粉紅色柱..

B8是粉紅色的。因此,當宏運行,A8那張粉紅色的,D14是粉紅色的,因此A14去粉紅色,A18是粉紅色但也有行18從而A18沒有更多的那張粉紅色透明等等等等。

有什麼建議?

回答

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