В соответствии с моим комментарием я буду вести историческую таблицу имен и номеров.Сначала я прочитал бы это в словарь, а затем зациклил соответствующие столбцы сводной таблицы, обновляя значение словаря, если имя существует.Если имя не существует, добавьте имя и номер в словарь.В конце напишите все обратно исторической таблице.
Историческая таблица - это ваша текущая таблица, в которой вы пытаетесь выполнить VLookup.В этом случае эта таблица будет содержать только совпадающие пары, к которым добавляются новые значения из сводной таблицы или обновляются существующие значения.
Для повторного выполнения таблицы справа, столбцы I & J должны иметь толькопары в нем совпадают для начала.Жестко закодировано.
Предполагается, что в сводном теле нет строк промежуточных итогов / итогов, хотя они могут быть исключены, если они присутствуют, при обновлении кода.
Option Explicit
Public Sub UpdateReferenceTable()
Dim lastRow As Long, dict As Object, ws As Worksheet, pvt As PivotTable, i As Long
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set pvt = ws.PivotTables("PivotTable1")
Set dict = CreateObject("Scripting.Dictionary")
With ws
lastRow = .Cells(.Rows.Count, "I").End(xlUp).Row
End With
Dim initialDictData(), pivotTableUpdates()
initialDictData = ws.Range("I9:J" & lastRow).Value
For i = LBound(initialDictData, 1) To UBound(initialDictData, 1)
dict(initialDictData(i, 2)) = initialDictData(i, 1)
Next
Dim names(), vendorNumbers()
names = Application.Transpose(pvt.PivotFields("Name 1").DataRange.Value)
vendorNumbers = Application.Transpose(pvt.PivotFields("Vendor Number").DataRange.Value)
For i = LBound(names) To UBound(names)
If names(i) <> vbNullString Then
If dict.exists(names(i)) Then
dict(names(i)) = vendorNumbers(i)
Else
dict.Add names(i), vendorNumbers(i)
End If
End If
Next
ws.Range("I9").Resize(dict.Count, 1) = Application.Transpose(dict.items)
ws.Range("J9").Resize(dict.Count, 1) = Application.Transpose(dict.Keys)
End Sub
Данные:
