2016-12-07 87 views
0

我想寫一個VBA代碼來選擇一組具有相同值和顏色的單元格。使用VBA根據相同的值選擇一組單元格

MySpreadSheet

對於A行,工作人員ID,都是一樣的,爲同一人,我希望通過他們進行掃描,如果他們是相同的,填補了細胞與淡藍色的顏色,你在看上面的圖片,列A到當前區域的最大列。

我有一個代碼來做到這一點,但是當我運行它時,它什麼都不做。任何幫助將不勝感激:

Sub ActualColouring() 

Dim SerialNumber As Integer 

SerialNumber = 2                       'this variable will be assign to the rows, ignore the header, start from 2 

Do While Cells(1, SerialNumber).Value <> ""             'keep looping as long as cell is not blank 
    If Cells(1, SerialNumber).Value = Cells(1, SerialNumber + 1).Value Then  'if the value of the cell is the same as the cell below, then 
     Cells(1, SerialNumber).Select                 'then select it 
     With Selection.Interior                    'this line is the start of the fill colouring 
      .Pattern = xlSolid 
      .PatternColorIndex = xlAutomatic 
      .ThemeColor = xlThemeColorAccent1 
      .TintAndShade = 0.799981688894314 
      .PatternTintAndShade = 0 
     End With                        'end of fill colouring function 
    End If 
    SerialNumber = SerialNumber + 1                'move to the next cell 
Loop                            'loop until the end of current region 
End Sub 

回答

0

Qualify the objectsavoid select

Sub ActualColouring() 

Dim ws as Worksheet 
Set ws = ThisWorkbook.Worksheets("mySheet") ' change name as needed 

With ws 

    Dim SerialNumber As Long, lRow as Long 
    lRow = .Range("A" & .Rows.Count).End(xlup).Row 

    For SerialNumber = 2 to lRow                        

     If .Cells(1, SerialNumber).Value = .Cells(1, SerialNumber + 1).Value Then  
      With .Cells(1, SerialNumber).Interior 
       .Pattern = xlSolid 
       .PatternColorIndex = xlAutomatic 
       .ThemeColor = xlThemeColorAccent1 
       .TintAndShade = 0.799981688894314 
       .PatternTintAndShade = 0 
      End With                         
     End If 
    Next 

End With 

End Sub 
+0

感謝斯科特!你是一個拯救生命的人! :) –

相關問題