У меня следующая проблема:
У меня есть два списка, A и B. Список B регулярно обновляется и может содержать новые значения. Список А остается статичным. Как мне добавить новые элементы в списке B, которых нет в списке A, в список A?
Я мог бы, вероятно, сделать vlookup и вернуть пропущенные значения, но тогда я не знаю, как добавить эти пропущенные элементы в список А.
Пытаетесь понять, есть ли простой код VBA для выполнения этой операции?
***** UPDATE: ******
Итак, используя ответ ниже, я попытался написать скрипт макроса, но я получаю сообщение об ошибке во время выполнения, в котором говорится, что объект не определен при попытке добавить элементы в словарь ?:
Option Explicit
Sub AppendProfitCentres()
Dim LastRowRecon As Long
Dim LastRowSAP As Long
Dim Dict As Object
Dim MissingPC As Long
Dim i As Integer
Worksheets("Recon").Range("K6").Select
Worksheets("Recon").Range("K6", Selection.End(xlDown)).Select
LastRowRecon = Cells(Rows.Count, 11).End(xlUp).Row
Cells(LastRowRecon, 11).Select
'
''create dictionary to hold profit centres
'
'
Set Dict = CreateObject("Scripting.Dictionary")
Worksheets("Recon").Range("K6").Select
For i = 6 To LastRowRecon
'
Dict.Add Key:=Worksheets("Recon").Range(i, 11).Value, Item:=vbNullString
Next i
'check SAP and TCM profit centres against Dictionary PC
Worksheets("SAP Data").Range("A7").Select
Worksheets("SAP Data").Range("A7", Selection.End(xlDown)).Select
LastRowSAP = Cells(Rows.Count, 1).End(xlUp).Row
For i = 7 To LastRowSAP
If Not PC.Exists(Worksheets("SAP Data").Range(i, 1).Value) Then
'if item doesnt exist, append to profit centres in recon tab
MissingPC = Empty
MissingPC = Worksheets("SAP Data").Range(i, 1).Value
Cells(LastRowRecon, 11).Select
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Value = MissingPC
End If
Next i
End Sub