Von Blatt2 nach Blatt1 kopieren, basierend auf der Übereinstimmung der Werte

Von Blatt2 nach Blatt1 kopieren, basierend auf der Übereinstimmung der Werte

Das Ziel dieses Codes besteht darin, eine Spalte in zu durchlaufen sheet1und zu prüfen, ob jeder Wert mit dem der Werte in einer Zeile in übereinstimmt sheet2. Wenn der Wert übereinstimmt, kopieren Sie 5 Zeilen mit Informationen von sheet2über nach sheet1in die spezifische Zeile, in der sie sich zu diesem Zeitpunkt befinden.

Symptome:

  • Fehler 1004 in der ersten Zeile, in der sich die if-Anweisung befindet.
  • Ich denke, Next bes wird auch einen Fehler werfen

VBA-Code:

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Range(i, 2).Value = Sheets("Sheet2").Range(b, 1).Value Then
        Sheets("Sheet2").Range("b,1:b,7").Copy Sheets("Sheet1").Range(i, 6)
        Next b
        End If
Next i

Antwort1

Um die Zeile und Spalte eines Bereichs als Zahlen anzugeben, müssen Sie Cellsanstelle von verwenden. Außerdem gibt RangeIhre Zeile einen Fehler aus, da sie sich innerhalb der verschachtelten Anweisung befindet. Stattdessen sollten Sie die For-Schleife mit beenden und an den Rand der Anweisung verschieben.Next bIfExit ForNext bIf

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Cells(i, 2).Value = Sheets("Sheet2").Cells(b, 1).Value Then
            Range(Sheets("Sheet2").Cells(b, 1), Sheets("Sheet2").Cells(b, 7)).Copy Sheets("Sheet1").Cells(i, 6)
            Exit For
        End If
    Next b
Next i

verwandte Informationen