2016-07-22 24 views
0

Ich habe Code, um Informationen einzugeben und diese Informationen dann mit einer Tabelle zu vergleichen. Ich möchte die neue Zeile hervorheben, die gerade erstellt wird, und diejenige, mit der wir die neue Zeile vergleichen. Hier ist mein CodeMarkieren von zwei Zeilen

Sub findData() 
    Dim workflow As String 
    Dim finalrow As Integer 
    Dim i As Integer 

    With Sheets("Sheet1") 
     workflow = .Range("C5").Value 
     servergri = .Range("C9").Value 
     gridf = .Range("C9").Value 
     StartTime = .Range("c11").Value 
    End With 

    With Sheets("Sheet3") 
     finalrow = .Range("C" & Rows.Count).End(xlUp).Row 

     For i = 5 To finalrow 
      If .Cells(i, 3) = workflow And (.Cells(i, 4) = servergri Or .Cells(i, 5) = gridf) Then 

       .Rows(i).Insert 
       'Add new information to the new row. 
       'The new row number is still = i 

       .Cells(i, 3) = workflow 
       .Cells(i, 4) = servergri 
       .Cells(i, 6) = StartTime 


       'If you only want to add one row then your should exit the loop 
       Exit For 
      End If 
     Next 
    End With 
    Call Worksheet_SelectionChange 
End Sub 

Sub Worksheet_SelectionChange() 
    Dim Target As Range 
    Application.ScreenUpdating = False 
    ' Clear the color of all the cells 
    Cells.Interior.ColorIndex = 0 
    ' Highlight the active cell 
    Target.Interior.ColorIndex = 8 
    Application.ScreenUpdating = True 
End Sub 
+0

Sie setzen nie 'target' etwas anderes zu sein, als es als' Range' im 'SelectionChange' erklärt event ... – Dave

+0

Wie weise ich es der neuen und der Vergleichszeile zu? @Dave –

+0

'Private Sub Worksheet_SelectionChange (ByVal Ziel als Bereich)' – Slai

Antwort

0

fügen Sie einfach

.Cells.Interior.ColorIndex = 0 
.Cells(i, 3).Resize(2, 4).Interior.ColorIndex = 8 

nach

.Cells(i, 6) = StartTime 
Verwandte Themen