VBA, ошибка при использовании поиска

У меня два листа BW и PSW.

С BW данные начинаются с строки 4. эти три строки объединены, и у меня есть некоторые кнопки команды там. лист PSW начинается с 1-го ряда.

Я ищу идентификатор в sheet1, который начинается с L5, и когда идентификатор совпадает с листом2, он переносит дату с листа2 на лист1. Я использую приведенный ниже код. Код не выполняет какой-либо вывод. Мог бы кто-нибудь сказать, где я совершаю ошибку.

Я полагаю, в приведенной ниже строке диапазон начинается от A, и поскольку мои данные начинаются с строки5, это не считается. если это так, то как я должен изменить диапазон. У меня был этот код, если мои данные начинаются с строки1 без каких-либо команд.

totalrows = Листы («BW»). Ячейки (Rows.Count, «A»). End (xlUp) .Row

Sub lookupePSR() Dim totalrows As Long, totalrowsSht2 As Long totalrows = Sheets("PSW").Cells(Rows.Count, "A").End(xlUp).Row totalrowsSht2 = Sheets("PSW").Cells(Rows.Count, "A").End(xlUp).Row Sheets("PSW").Range("AA5:AA" & totalrows).Formula = Application.WorksheetFunction.IfError(Application.VLookup(Sheets("PSW").Range("L5:L" & totalrowsSht2), Sheets("PSW").Range("$A:$L"), 7, 0), "") End Sub 

Как упоминалось в комментариях, поместите фактическую формулу в рабочий лист; необязательно вернуться к значениям, возвращаемым формулами.

 with Sheets("PSW").Range("AA5:AA" & totalrows) .Formula = "=iferror(vlookup(l5, $a:$g, 7, false), text(,))" 'optionally revert the formulas' returned values to values in cells .value = .value end with 

TEXT(,) – это то же самое, что и "" ; т.е. строку нулевой длины. Я использую это, потому что вам нужно удвоить двойные кавычки (например, "" становится """" ) при использовании в цитируемой строке, как приведенная выше формула, и это путает вопросы.

Я сократил диапазон поиска до A: G, так как вы ищете только седьмой столбец в диапазоне.

Давайте будем гением компьютера.