2

Я спросил это в StackOverflow и был перенаправлен сюда. Извиняюсь за избыточность.

У меня есть лист Excel с комбинированным полем на Sheet1, который заполняется через его свойство Input Range из динамического именованного диапазона на Sheet2. Работает нормально и VBA не требуется.

Мои данные на Листе 2 фактически находятся в таблице Excel (все данные находятся в файле XLS, без внешних источников данных). Для ясности я хотел использовать ссылку на структурированную таблицу для поля ввода диапазона со списком, но не могу найти синтаксис, который работает, например, myTable [[# Data], [myColumn3]]

Я не могу найти никаких признаков того, что поле со списком примет ссылки на структурированные таблицы, хотя я не могу понять, почему это не так.

Итак, вопрос из двух частей: 1. Можно использовать ссылку на столбец таблицы в свойстве диапазона ввода поля со списком (не используя VBA) и 2. КАК?

3 ответа3

3

Я понимаю, что это довольно старый вопрос, но на тот случай, если кто-то наткнется на него, как будто я только что решил решить тот же вопрос ... Как и СкоттиБ, я тоже не мог заставить ответ Дэва работать на меня. Вот как я решил это в Excel 2013.

  1. Создайте свой вертикальный список вариантов для вашего поля со списком. Не в таблице (пока), не с заголовком (пока, но оставьте место для одного), просто столбец того, что вам нужно для выпадающего списка.

  2. Создайте / Определите имя для вашего списка, используя обычный Sheet1!$ A $ 1:$ A $ 2 нотация.

  3. Вставьте свой элемент управления поля со списком, используя имя, которое вы только что создали для его диапазона ввода.

Все идет нормально. Поле со списком будет работать, но новые опции, добавленные в конец вертикального списка (даже непосредственно под именованным диапазоном), не будут добавлены в раскрывающийся список; именованный диапазон, на котором основан раскрывающийся список, динамически не расширяется.

Теперь к лучшему.

  1. Вернитесь к своему вертикальному списку (убедитесь, что вы очистили все, что вы добавили вокруг именованного диапазона, чтобы он был таким же, как вы оставили на шаге 2) и добавьте заголовок над ним. Подойдет любой текст, это всего лишь ярлык для определения вашего списка вариантов.

(Или нет! В любом случае Excel добавит его для вас на следующем шаге, если вы позволите.)

  1. С выбранным заголовком используйте Ctrl+T или Insert | Таблица. Примите диапазон, который находит Excel, и обязательно установите флажок «Мои таблицы имеют заголовки», затем нажмите «ОК». Вы можете изменить имя таблицы, если хотите: это не имеет значения.

(Примечание. Если вы не добавили заголовок, не устанавливайте флажок «Моя таблица содержит заголовки», чтобы Excel создавал его для вас.)

Теперь - очевидно, потому что исходный именованный диапазон теперь является частью определения таблицы - добавление новой строки внизу вертикального списка автоматически расширяет не только определение таблицы, но и определение исходного именованного диапазона. Таким образом, появится новая опция в списке вариантов списка. Магия!

2

В Excel 2010 вы можете сделать это, но это двухэтапный процесс.

  1. Создайте именованный диапазон, используя структурированную ссылку таблицы (например, myrange = mytable [myColumn3]).
  2. Используйте именованный диапазон в качестве входного диапазона элемента управления.

И, как и следовало ожидать, поле управления обновляется с изменениями в списке. Я не уверен, почему вы не можете использовать ссылку непосредственно в элементе управления, но в Excel много всего, что я до сих пор не понимаю.

РЕДАКТИРОВАТЬ: не забудьте удалить символ @ из ссылки на таблицу в менеджере имен, в противном случае вы получите только значение соответствующей строки для набора проверки (например, [myColumn3], а не [@ myColumn3]).

1

Ответ Ника в отношении XL 2013 будет в порядке, если вы еще не создали таблицу.

Однако это проще, чем это. Вы определяете имя, указывающее на столбец таблицы. Затем создайте другое имя, указывающее на имя. Вы можете использовать второе имя в диапазоне ввода, и оно отлично работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .