В Excel 2007 я перебираю значения столбца 4 в Листе 2. Еще в Листе 2 я хочу вывести результат моей формулы vlookup в столбец 5. Формула vlookup должна обратитесь к Листу 1, где указаны ссылочные столбцы. Для того, чтобы сделать это я следующая формулаVBA vlookup ссылка в другом листе
Range("E2") = Application.WorksheetFunction.VLookup(Range("D2"), _
Worksheets("Sheet1").Range("A1:C65536"), 1, False)
проблемы, он возвращает код ошибки 1004. Я читал, что это потому, что мне нужно выбрать лист 1 перед запуском формул, таких как:
ThisWorkbook.Worksheets("Sheet1").Select
Но тогда искомое значение Диапазон («D2») не относится к Листу 1, и оно все еще возвращает код 1004 после того, как принесет лист 1 в поле зрения.
Каков правильный способ обращения к другому листу в этом случае?
Почему вы используете VBA для возврата результата формулы, которая может быть введена непосредственно в 'Worksheets (« Sheet2 »). Range (« E2 »)'? –
Я согласен с логикой Марка, поэтому я разместил альтернативу вашему коду, который будет делать то же самое. Но, если вы хотите придерживаться своей логики, попробуйте добавить '.Value' к аргументу массива. Как этот «Application.WorksheetFunction.Vlookup (Range (« D2 »),« Листы »(« Лист1 »). Диапазон (« A1: C65536 »). Значение, 1, False)'. Кроме того, возвращаете ли вы значения в колонке A? Вы используете '1' в третьем аргументе' Vlookup', который является 'col_index_num'. – L42
@Mark: этот код содержится в цикле, итерации для нескольких столбцов, выводя результат в строковые переменные, которые я буду конкатенатировать в конце обработки каждой строки в последний столбец. Я только упростил свой код, чтобы избежать вставки всего моего макроса здесь. – CloseISQ