Что происходит, когда вы пропускаете назначение, которое вызывает ошибку в d = Application.WorksheetFunction.VLookup(cell.Value, Rng, 2, 0)
, предыдущее значение не было очищено из переменной d
.
Здесь можно попробовать два подхода:
1. Инициализируйте строку в каждой итерации:
On Error Resume Next
For Each cell In src
d = vbNullString
d = Application.WorksheetFunction.VLookup(cell.Value, Rng, 2, 0)
cell.Offset(0, 1).Value = d
Next cell
2. Пропустить присвоение строки ячейке, определив метку, а не Resume Next
:
On Error Resume NextCell
For Each cell In src
d = Application.WorksheetFunction.VLookup(cell.Value, Rng, 2, 0)
cell.Offset(0, 1).Value = d
NextCell:
Next cell