Код VBA, который будет использоваться для проверки идентификатора клиента на втором рабочем листе, а затем скопировать новый идентификатор клиента и поместить его на первый лист со списком всех идентификаторов клиентов.
Подобно IF CID на листе 2, а не на листе 1, затем скопируйте эти новые CID из столбца C листа 2 и поместите его на листе 1 в последней пустой ячейке в столбце E. (Обратите внимание, что столбцы E, C содержат CID, а столбцы F, J содержат описание). Обратите внимание, что ячейки данных sheet1 начинаются со строки 8, а sheet2 начинаются со строки 17. Цените вашу поддержку, у меня есть около 200 идентификаторов клиентов из разных областей и я хочу каждый раз переносить их на один большой лист (Sheet1), чтобы поддерживать их в актуальном состоянии. -date.
Sub Copy()
Dim i As Long, j As Long, lastrow1 As Long, lastrow2 As Long
Dim cid As String
lastrow1 = Sheets("sheet1").Range("e" & Rows.Count).End(xlUp).Row
For i = 8 To lastrow1
cid = Sheets("sheet1").Cells(i, "e").Value
Sheets("sheet2").Activate
lastrow2 = Sheets("sheet2").Range("c" & Rows.Count).End(xlUp).Row
For j = 17 To lastrow2
If Sheets("sheet2").Cells(j, "A").Value = cid Then
Sheets("sheet2").Activate
Sheets("sheet2").Range(Cells(i, "c"), Cells(i, "c")).Copy
Sheets("sheet1").Activate
Sheets("sheet1").Range(Cells(j, "e"), Cells(j, "c")).Select
ActiveSheet.Paste
End If
Next j
Application.CutCopyMode = False
Next i
End Sub
Я пытаюсь использовать цикл «для следующего», чтобы гарантировать, что только когда CID не найден во втором диапазоне рабочих таблиц, новые CID передаются из диапазона sheet2 в sheet1. Также последний ряд.
Я нашел этот код в сети и с некоторыми изменениями, но он все еще не работает, поскольку результаты и диапазоны отличаются. Большое спасибо.