Прежде всего, извините, если на этот вопрос уже был дан ответ, но я искал около дня и не смог ничего найти.
Часть моего макроса будет сравнивать два столбца (A и B), чтобы понять, что изменилось с одного месяца на следующий.
Сначала я посмотрю, что находится в A, а не в B, чтобы определить, что было добавлено.
i = 3
For Each rngCell In Sheets("Data").Range("A2:A200")
If WorksheetFunction.CountIf(Sheets("Data").Range("B2:B200"), rngCell) = 0 Then
Sheets("Summary").Cells(Rows.Count, 1).End(xlUp).Offset(1) = rngCell
End If
i = i + 1
Next
Затем я посмотрю, что находится в B, а не в A, чтобы определить, что было удалено.
n = 3
For Each rngCell In Sheets("Data").Range("B2:B200")
If WorksheetFunction.CountIf(Sheets("Data").Range("A2:A200"), rngCell) = 0 Then
Sheets("Summary").Cells(Rows.Count, 4).End(xlUp).Offset(1) = rngCell
End If
n = n + 1
Next
Это работает для меня. Затем я хочу сравнить больше столбцов (например, C и D, E и F, G и H ..... и т. Д.). Я хотел бы создать цикл For Loop, чтобы мне не пришлось исправлять эти два набора инструкций еще 30 или более раз.
Я застрял в том, как передать переменную в Range, чтобы вместо A2: A200 у меня было что-то вроде Range (Cells (Integer, 2), Cells (Integer, 200)).
Буду признателен за помощь, если у кого-то есть ответ.