Я не уверен, что полностью понимаю ваш вопрос (например, я не понимаю, «связан ли он с другим рабочим листом, который предпочтительно будет иметь имя текстового значения») или «мне нужно, чтобы" общее имя "обновлялось каждый раз, когда новая рабочая таблица открыта », но это то, что вы можете обойтись без VBA. Если ячейка C29
содержит имя листа в текущей рабочей книге и (в какой-то другой ячейке) вы хотите получить доступ к значению ячейки Q42
на листе, названном ячейкой C29
, используйте
=INDIRECT(C29 & "!Q42")
&
- это конкатенация строк, поэтому строится строка «Эдгар!Q42” . И функция INDIRECT
обрабатывает эту строку как ссылку на ячейку.
Это обеспечивает доступ только для чтения: если пользователь заполняет ячейку C29
значением «Эдгар» (выбирая из раскрывающегося списка или любым другим способом), то в ячейках на Листе 1 могут отображаться значения из листа «Эдгар», например, Эдгара. дата и место рождения, цвет глаз и т. д. Я выбрал эти примеры как вещи, которые вы никогда не измените. Но если ваша рабочая книга также содержит динамическую информацию, такую как текущий адрес и номер телефона, рост и вес, должность и зарплата и т.д., То пользователь сможет только просматривать их. Если вы хотите, чтобы рабочая книга перешла на лист «Эдгар», вам понадобится VBA. Если вы хотите иметь возможность вводить данные в ячейки на листе 1 и копировать их на лист «Эдгар», я не знаю, можно ли вообще это сделать; но если это возможно, я уверен, что для этого потребуется VBA.