Сейчас я работаю над файлом Excel, состоящим из 3 листов. Три листа состоят из следующих, во-первых, листа «Datenquelle», во-вторых, листа «Datenunterschied» и, в-третьих, листа «Daten».
Все три листа содержат идентичные имена столбцов и похожие данные. Я хочу выделить различия данных в «Datenquelle» и «Daten» на листе «Datenunterschied» с помощью макроса VBA.
Контрольной точкой должен быть столбец «Идентификатор».
Как видите, лист «Daten» содержит четыре набора данных со следующими номерами идентификаторов:
6257 - 6258 - 6259 - 6260
Лист «Datenquelle» содержит шесть номеров идентификаторов:
6257 - 6258 - 6259 - 6260 - 6261 - 6268
Цель состоит в том, чтобы все наборы данных, которые не содержатся в листе «Daten», но содержат «Datenquelle», должны быть взяты через макрос VBA в лист "Datenunterschied". В моем примере это будут наборы данных, следующие за идентификаторами «6261» и «6268». Вся ячейка наборов данных «6261» и «6268» должна быть перенесена в «Datenunterschied».
Я пробовал использовать макрос, но он не дал правильного результата.
Sub Unterschied()
Dim CompareRange As Object, x As Object, y As Object
Dim lastRow As Integer
Set CompareRange = Sheets("Datenquelle").Range("H2:H" & Sheets("Datenquelle").Cells(Rows.Count, _
9).End(xlUp).Row)
For Each x In Sheets("Daten").Range("H2:H" & Sheets("Daten").Cells(Rows.Count, 9).End(xlUp). _
Row)
For Each y In CompareRange
If y <> x Then
lastRow = Sheets("Datenunterschied").Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets("Datenunterschied").Cells(lastRow, 9).Value = x.Value
Sheets("Datenunterschied").Cells(lastRow, 10).Value = x.Offset(0, 1).Value
Sheets("Datenunterschied").Cells(lastRow, 11).Value = x.Offset(0, 2).Value
Sheets("Datenunterschied").Cells(lastRow, 8).Value = x.Offset(0, -1).Value
Sheets("Datenunterschied").Cells(lastRow, 7).Value = x.Offset(0, -2).Value
Sheets("Datenunterschied").Cells(lastRow, 6).Value = x.Offset(0, -3).Value
Sheets("Datenunterschied").Cells(lastRow, 5).Value = x.Offset(0, -4).Value
Sheets("Datenunterschied").Cells(lastRow, 4).Value = x.Offset(0, -5).Value
Sheets("Datenunterschied").Cells(lastRow, 3).Value = x.Offset(0, -6).Value
Sheets("Datenunterschied").Cells(lastRow, 2).Value = x.Offset(0, -7).Value
Sheets("Datenunterschied").Cells(lastRow, 1).Value = x.Offset(0, -8).Value
End If
Next y
Next x
End Sub
Я предоставил данные здесь:
https://www.herber.de/bbs/user/137783.xlsm
Привет, Канимэ