У меня есть книга, содержащая множество листов, одна из которых является, по существу, листом входа. Каждая строка имеет ячейку «Имя», которая имеет раскрывающийся список «Проверка данных», который ссылается на отдельный лист «Список заполняющих». Смежные ячейки затем используют VLOOKUP, ссылаясь на ячейку Name и выбирают нужные значения (ID, номер телефона и т. Д.). Это работает очень хорошо.Ссылка на относительную прокрутку двигателя?
У меня есть макрос, который разбивает книгу на отдельные рабочие листы. Легкий способ поставить это вместо того, чтобы я отправлял электронную почту всей книге, я просто разделил ее и отправил по электронной почте лист входа. Чтобы облегчить ссылку со входа в листинге на лист, я скопировал листок списков листов в новую книгу «Вход в листы».
...
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xlsm", FileFormat:=52
...
masterWB.Sheets("List Filler").Copy Before:=newWB.Sheets(1)
...
Когда я открываю новую книгу, как лист, так и лист ввода видимы, как и ожидалось. Однако ссылки ВПР и ссылка проверки данных Источник все точки на главной книге:
проверки данных Источник изменен:
='[workbookname.xlsm]List Filler'!#REF!
ВПР изменено на:
=IFERROR(VLOOKUP(O14,'[workbookname.xlsm]List Filler'!A:M,12,FALSE),"")
Так ВПР поддерживается его ссылка, но полностью указана в листе списка наполнителей в основной книге.
В принципе, у меня есть 2 проблемы.
1) Ссылка VLOOKUP должна относительно ссылаться на лист наполнителя списка, а не искать его в основной книге. Я мог бы исправить это с помощью специальной функции (как это сделать в другом месте), но исправить здесь, вероятно, то же самое, что и для (2), что и является калечащим меня.
2) Ссылка источника данных Проверка должна быть направлена к «локальному» листу списка листов, а не оригиналу в основной книге.
Любая помощь по этому вопросу будет принята с благодарностью. Если какое-либо разъяснение необходимо, просто сообщите мне, и я также с удовольствием предоставил дополнительные фрагменты кода, если это необходимо.
Спасибо!
Редактировать 1: Чтобы добавить, я хочу, чтобы ссылка на список Filler была «локальной», потому что листок ввода в конечном итоге будет перемещен/скопирован обратно в основную книгу. Лист входа переходит из основной книги в отдельную, а затем обратно к главному, все время, когда ему нужен доступ к листу списка заполнений, который всегда будет существовать как список Filler в любом листе входа в книгу. Как и мы делаем $ A $ 1, чтобы ВСЕГДА ссылаться на А1, я хочу сделать «$ List Filler», если это имеет смысл.
Для второй проблемы вы можете найти find-replace на «[workbookname.xlsm]» и заменить ее на «» – OpiesDad
. Для первого я бы поиграл с названием номера в основной книге, а затем удалив названный диапазон в новой книге и добавление нового в новую книгу с тем же именем. Затем используйте именованный диапазон в валидации данных вместо перечисления ячеек. Я не знаю, будет ли это работать, но стоит попробовать. – OpiesDad
Это может вызвать предупреждение, которое выдается при копировании ... что-то вроде «Вы хотите использовать именованный диапазон из начальной книги», но вы, вероятно, могли бы подавить предупреждение, а затем справиться с ним. – OpiesDad