2013-07-11 2 views
1

Я хотел бы иметь возможность разрешить пользователю изменять файл, используемый в качестве ссылки в VLOOKUP. Все используемые файлы будут иметь один и тот же массив, только разные пути к файлам.Использовать значение ячейки в качестве ссылки для массива таблиц VLOOKUP?

Вот как я думаю, он должен работать.

  1. Нажмите кнопку макроса, которая откроет браузер файлов.
  2. Позвольте пользователю выбрать файл.
  3. Вставить путь к файлу в ячейке (A1)
  4. Преобразование пути для включения массива.
  5. В формуле VLOOKUP ссылайтесь на ячейку A1 как на «таблицу массива».

Я уже могу выполнить до шага 3. Любая идея о том, как добавить определенный массив и ссылаться на ячейку в VLOOKUP?

+4

Вы посмотрели на 'INDIRECT()'? –

+0

Можете ли вы показать нам код, который вы используете для первых трех шагов? – stenci

ответ

0

Я бы просто записал именно то, что вы хотите сделать, а затем замените то, что вы сделали, с переменной, которая назначается, например, когда вы поместите путь в ячейку A1. Затем просто перепишите макрос соответствующей формулы vlookup.

Вы также можете сделать формулу, которая будет показывать то, что вы хотите, а затем использовать vba для копирования и вставки значений. Затем вам может понадобиться найти и заменить что-то в ячейке (ях), чтобы заставить ее фактически преобразовать в формулу.

Пример:

In A1 Put the path (with workbook name, i.e.C:\Users\username\Desktop\Book3.xlsx) 
In B1 ="=VLOOKUP(D1,'"&MID(A5,1,FIND("*",SUBSTITUTE(A5,"\","*",LEN(A5)-LEN(SUBSTITUTE(A5,"\","")))))&"["&MID(A5,FIND("*",SUBSTITUTE(A5,"\","*",LEN(A5)-LEN(SUBSTITUTE(A5,"\",""))))+1,100)&"]Sheet1'!B$1:C$4,2,FALSE)" 
B1 then looks like this =VLOOKUP(D1,'C:\Users\username\Desktop\[Book3.xlsx]Sheet1'!B$1:C$4,2,FALSE) 
Copy B1 to C1 and do a find replace of something, like find Users and replace all with Users. 

Это грязно, но я использую что-то вроде этого для инструмента, который должен обновляться из 30 различных файлов разных размеров, основанных на 6000 строк формул массива, обновление еще одной таблицы , Это работает хорошо для меня, но немного медленнее для больших файлов.