2016-07-20 6 views
1

Ich versuche, ein kleines Stück Code zu erstellen, die eine Reihe bewegen, wenn Sie Tabelle2: G <> M „oder“ I <> 0 oder L <> Reine Zeile in ein anderes Blatt verschieben, wenn die Zellen nicht übereinstimmen

zum Beispiel in meiner aus Tabelle unten:

G I L M O R 
1 2 3 1 2 4 

also diese bestimmte Zeile Blatt zwei als eine der Aussagen war zufrieden bewegt werden würde: <> R

ich habe diesen Code L so weit:

Sub SingleTradeMove() 
lastRow = Sheets("Trade data").Range("A" & Rows.Count).End(xlUp).Row 
Sheets("Sheet2").Range("A2:AK600").ClearContents 
For i = 2 To lastRow 
If Sheets("Trade data").Cells(i, "J").Value = "" Then 
Sheets("Trade data").Cells(i, "J").EntireRow.Copy Destination:=Sheets 
("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1) 

End If 
Next i 
End Sub 

Antwort

1

Angenommen GILMOR beginnt in Spalte A. Ändern Sie die Spaltenreferenzen nach Bedarf.

Sub SingleTradeMove() 

Dim wsTD as Worksheet 
Set wsTD = Worksheets("Trade data") 

    Sheets("Sheet2").Range("A2:AK600").ClearContents 

    With wsTD 

    lastRow = .Range("A" & .Rows.Count).End(xlUp).Row 

    For i = 2 To lastRow 

     If .Cells(i, "J").Value = "" Or .Cells(i,"A") <> .Cells(i,"D") _ 
      Or .Cells(i,"B") <> .Cells(i,"E") _ 
      Or .Cells(i,"C") <> .Cells(i,"F") Then 

      .Cells(i, "J").EntireRow.Copy _ 
       Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1) 

     End If 

    Next i 

End With 

End Sub 
+0

Danke, ich werde das ausprobieren! :) –

+0

Funktioniert gut, aber ich hatte eine Frage, Wenn ich die linke Funktion auf Zellen B und E zum Beispiel mit links (B, 4) und links (E, 4) verwenden wollte, funktionieren diese für mich nicht. Wie könnte ich diese beiden Dinge neu schreiben? –

+0

'Oder .Left (Zellen (i," B "), 3) <> Links (.Cells (i," E "), 3)' ... ändere 3 nach Bedarf ... du möchtest vielleicht einpacken 'UCase()', wenn die Groß-/Kleinschreibung beachtet werden muss –

Verwandte Themen