Я разрабатываю приложение, которое использует коды спецификации для просмотра этих кодов в другой электронной таблице и возвращает номера поставщиков со второй таблицы в первую очередь, перечисляя их в тот же столбец с кодом спецификации.Excel 2013 на W10: VBA Vlookup на другом листе создает ошибку 1004
ActiveCell.FormulaR1C1 = Application.WorksheetFunction.VLookup(specsec, [Vendorspec.xlsx!vid], 4)
в приведенной выше строке кода:
- specsec является кодом спецификации, в форме XX XX XX.XX
- Имя целевого файла ВПР "VendorSpec.xlsx". На этом листе каждый код является уникальной записью в столбце 1 с первым из нескольких номеров поставщиков в столбце 4. Будущий код будет циклически проходить через столбцы, возвращая все последующие идентификаторы поставщиков для текущего кода.
В строке кода возникает ошибка «Ошибка времени выполнения« 1004 »: невозможно получить свойство vlookup класса функции рабочего листа».
Может ли кто-нибудь предложить исправить?
спасибо.
ваш код работает для меня _provided_ 'Vendorspec.xlsx' рабочая книга открыта _and_' vid' является допустимым диапазоном именованного диапазона рабочей книги в этой книге _and_ значение 'specsec' существует в первом столбце диапазона' vid' _and_ ' vid' имеет ширину не менее четырех столбцов –
Можете ли вы попробовать без usind '.FormulaR1C1', только с' ActiveCell = Application ... '? – Vityata
Я не думаю, что вы можете назначить такую функцию для FormulaR1C1, поскольку она будет вычислять функцию WorksheetFunction и просто нажать результат. Если вы хотите, чтобы формула оставалась в ячейке, вам нужно нажать формулу в виде строки. Если вы просто хотите, чтобы результаты формулы оставались в ячейке, чем использовать «ActiveCell.Value2». – nbayly