В VBA, как выразить формулу ячейки в листе 1 по фактическим именам ячеек с других листов

#vba #excel-formula

Вопрос:

В листе 1 формула в ячейке A1 выражается следующим =Sheet2!E1 Sheet3!F1 Sheet4!G1 образом: фактические имена ячеек E1 в листе 2, F1 в листе 3 и G1 в листе 4 являются SourceFromSheet2, SourceFromSheet3 и SourceFromSheet4 соответственно. Существует ли параметр или код, позволяющий формуле ячейки A1 в листе 1 автоматически отображаться как =SourceFromSheet2 SourceFromSheet3 SourceFromSheet4

Лист1 Лист2 Лист3 Лист4

Комментарии:

1. Да, если вы определяете имена с областью действия книги , они доступны из любого места книги. Если вы определили имена с помощью области листа , то они доступны только из листа, который их определяет.

2. Я определил имена на листах 2, 3 и 4 с областью действия рабочей книги. Они называются SourceFromSheet2, SourceFromSheet3 и SourceFromSheet4 соответственно. Но формула в ячейке A1 на листе 1 по-прежнему выражается как =Лист2!E1 Лист3!F1 Лист4! G1. Можем ли мы автоматически установить его в =SourceFromSheet2 SourceFromSheet3 SourceFromSheet4?

3. Нет, вам нужно отредактировать формулу , чтобы получить это — это может быть достигнуто путем проверки Precedents коллекции каждой ячейки и сравнения с именами каждой RefersToRange ячейки, а затем соответствующей замены фрагментов в формуле. Теперь это довольно много проблем, которые нужно решить для одного вопроса, но решайте каждую проблему по очереди, и вы добьетесь своего; не стесняйтесь задавать конкретный вопрос о конкретной проблеме, с которой вы столкнулись, вставляя свой код в сообщение и описывая любые ошибки, которые вы получаете. Удачи!

Ответ №1:

Войдите в Лист2, ячейка E1; в поле имя написано «E1».:

выбрана ячейка E1, в поле имя указано quot;E1quot;

Теперь введите имя, которое вы хотите для него, в поле имя:

выбрана ячейка E1, в поле имя указано quot;имя тестаquot;.

Откройте диспетчер имен на вкладке Лента формул:

диспетчер имен, отображающий имя рабочей книги quot;имя тестаquot;, относящееся к листу1!E1

Обратите внимание, что в столбце «Область действия» указано «Рабочая книга»: вы можете ссылаться на это имя в любой формуле в любом месте этой книги!

В качестве альтернативы создайте имя из самого менеджера имен; нажмите кнопку «Создать…» и определите имя в области «Рабочая книга» .:

Диалоговое окно quot;Новое имяquot;, определяющее quot;Другое имяquot;, относящееся к листу 2!F2

Теперь имена в области рабочей книги отображаются в режиме автоматического заполнения формул, и вы знаете, что сделали это правильно:

ввод quot;=testname Anoquot; в ячейку показывает quot;Другое имяquot; в раскрывающемся списке автозаполнения

Вы также можете программно определить имена области действия книги, добавив их в ThisWorkbook.Names коллекцию.