/ / VBA: vergleiche jede Zeile mit zwei Spalten, schneide dann die passende Zeile und füge sie woanders ein - excel, excel-vba, vba

VBA: vergleiche jede Reihe von zwei Spalten, dann schneide die passende Zeile und füge sie woanders ein - excel, excel-vba, vba

Ich habe diesen Tisch:

A B C

4 4 X

4 1

4 0 X

4 8

4 4

4 9 X

Ich muss übereinstimmende Zellen in der Zeile aus den Spalten A und B finden und dann die entsprechende Zeile ausschneiden und unter der Tabelle einfügen. Der Datenbereich ist A2: C8.

In meiner Tabelle gibt es 2 Übereinstimmungen, also sollte das Ergebnis so aussehen:

4 4 X
4 4

Hier ist mein Code:

Sub cutter()

Dim cell1 As Integer, cell2 As Integer

cell1 = Range("A2").Value
cell2 = Range("B2").Value

If cell1 = cell2 Then
Sheet1.Range("A2:C2").Cut Sheet1.Range("A27:C27")
End If

End Sub

Es funktioniert gut, aber ich muss jede Zeile vergleichen. Ich weiß, dass ich Schleife wie hier implementieren sollte:

Dim rng As Range
Dim row As Range
Dim cell As Range
Set rng = Range("A2:C8")
For Each row In rng.Rows
For Each cell In row.Cells
" condition
Next cell
Next row

Aber ich weiß nicht wie :(

Helfen Sie jemandem?

Danke im Voraus!

Antworten:

0 für die Antwort № 1

Dieser Code wird bis zur ersten leeren Zeile in A durchlaufen:

Sub testcompare()
i = 1 "start in cell 1
j = 27 "cut start in cell 27

While Not IsEmpty(Cells(i, 1))
If Cells(i, 1).Value = Cells(i, 2).Value Then
Range(Cells(i, 1), Cells(i, 3)).Cut Range(Cells(j, 1), Cells(j, 3))
i = i + 1
j = j + 1
Else
i = i + 1
End If
Wend
End Sub