Darbe.ru

Быт техника Дарби
14 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel функциональный макрос: создание выпадающего списка

Excel функциональный макрос: создание выпадающего списка

Я хочу создать функцию, которая превращает ячейку в выпадающий список со значениями в ней.

Пока что из того, что я читаю в интернете, он показывает только, как это сделать в форме sub , но я хочу попробовать использовать его в ячейке, чтобы он автоматически заполнял ее. Пока что я получил вот это.

А в камере это будет записано и перенесено в нижние камеры

3 ответа

  • Считывание данных Excel из выпадающего списка в массив объектов C#

Изнутри C# я пытаюсь прочитать данные с листа Excel в объект C#. Все работает нормально, за исключением одной маленькой детали-Excel данных из выпадающих списков. Каким-то образом результат в массиве равен null для каждой соответствующей записи выпадающего списка Excel. Мой код до сих пор ниже.

Я совершенно новичок в мире macros, но уже делал некоторые VBScript на QTP раньше. Я хочу создать макрос, который скрывал бы определенные столбцы в зависимости от выбора пользователей из выпадающего списка. Я не уверен в синтаксисе и в том, как идентифицировать столбцы, которые я хочу скрыть, и.

Ответьте на свой первый вопрос в строке: Я хочу создать функцию, которая превратит ячейку в раскрывающийся список со значениями в нем.

если вам нужен этот код, вы можете попробовать этот код:

или вы можете использовать массив un с динамическим размером и получать элементы из ячеек

Надеюсь, это поможет вам

Существует способ обойти этот тип требований, но он может не соответствовать вашим потребностям.

Шаг 1 . Создайте функцию, которая будет вызываться, когда пользователь нажимает на раскрывающийся список проверки в ячейке. В этом примере проверяется значение слева от ячейки, и только если это «Yes», он возвращает диапазон, который будет использоваться для списка.

Шаг 2 . Вы не можете ссылаться на эту функцию непосредственно из настройки списка проверки, поэтому вам необходимо использовать имя книги для «route» вызова проверки функции:

enter image description here

Шаг 3 . Создайте раскрывающийся список в ячейке, ссылаясь на только что созданное имя (которое, в свою очередь, ссылается на функцию VBA). Теперь вы получите список, когда в ячейке слева есть «Yes», но в противном случае списка нет. Или вместо этого вы можете использовать один и тот же подход для возврата двух разных списков, в зависимости от содержимого в других ячейках.

enter image description here

  • функциональный макрос против macros

gcc (GCC) 4.7.2 c89 Привет, Я смотрел на набор тестов и заметил этот функциональный макрос, объявленный следующим образом: #define MU_SUITE_START() char *msg = NULL Однако есть ли какая-то реальная разница в том, чтобы делать именно это вместо этого: #define MU_SUITE_START char *msg = NULL Macros.

Мне интересно, можно ли скрыть столбцы на основе выбора выпадающего списка с помощью excel. Например,предположим,что у меня есть 3 столбца( C1, C2, C3) и у меня есть выпадающий список с 2 значениями(drop1 и drop2). Когда drop1 выбран из выпадающего списка,то покажите C1, C2 и скройте C3. Если.

Итак, изучив все ответы, которые мне предоставили, я нашел эту ссылку, https://www.excel-easy.com/vba/events.html

Я смог написать Sub события изменения, чтобы, когда пользователь добавляет значение в ячейку и переключается из ячейки, sub запускался и создавал раскрывающийся список.

Похожие вопросы:

Я хочу написать макрос, который будет выбирать конкретное значение (в моем случае, хранящееся в ячейке A1 ) из выпадающего списка (в моем случае, в ячейке D6 ). Вот что у меня есть до сих пор.

Есть ли в Excel 2013 функция, которая позволила бы мне выбрать значение выпадающего списка на основе значения другого поля? Например: я хочу иметь 2 варианта в моем выпадающем списке (True и False).

Читайте так же:
Можно ли использовать подсолнечное масло для смазки

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

Изнутри C# я пытаюсь прочитать данные с листа Excel в объект C#. Все работает нормально, за исключением одной маленькой детали-Excel данных из выпадающих списков. Каким-то образом результат в.

Я совершенно новичок в мире macros, но уже делал некоторые VBScript на QTP раньше. Я хочу создать макрос, который скрывал бы определенные столбцы в зависимости от выбора пользователей из выпадающего.

gcc (GCC) 4.7.2 c89 Привет, Я смотрел на набор тестов и заметил этот функциональный макрос, объявленный следующим образом: #define MU_SUITE_START() char *msg = NULL Однако есть ли какая-то реальная.

Мне интересно, можно ли скрыть столбцы на основе выбора выпадающего списка с помощью excel. Например,предположим,что у меня есть 3 столбца( C1, C2, C3) и у меня есть выпадающий список с 2.

Нужно создать checkbox внутри выпадающего списка в excel 2010. Мы уже пробовали создать список и выбрали опцию multiselectExtended, но это не служит нашей цели. Образец необходимого функционала.

Я работаю над приборной панелью для своего офиса. Все это работает, но я хотел добавить опцию, что вместо поиска по 250+ элементам в выпадающем списке вы также можете щелкнуть по ячейке, и.

Я добавил выпадающие списки в некоторых столбцах листа excel, используя Apache poi. Когда одно из выпадающих значений содержит символ дефиса ( — ), то при открытии листа excel он выдает ошибку — мы.

18 готовых макросов VBA Excel

В этом уроке я покажу Вам самые популярные макросы в VBA Excel, которые вы сможете использовать для оптимизации своей работы. VBA — это язык программирования, который может использоваться для расширения возможностей MS Excel и других приложений MS Office. Это чрезвычайно полезно для пользователей MS Excel, поскольку VBA может использоваться для автоматизации вашей работы и значительно увеличить Вашу эффективность. В этой статье Вы познакомитесь с VBA и я вам покажу некоторые из наиболее полезных, готовых к использованию примеров VBA. Вы сможете использовать эти примеры для создания собственных скриптов, соответствующих Вашим потребностям.

Вам не нужен опыт программирования, чтобы воспользоваться информаций из этой статьи, но вы должны иметь базовые знания Excel. Если вы еще учитесь работать с Excel, я бы рекомендовал Вам прочитать статью 20 формул Excel, которые вам нeобходимо выучить сейчас, чтобы узнать больше о функциональных возможностях Excel.

Я подготовил для вас несколько самых полезных примеров VBA Excel с большой функциональностью, которую вы сможете использовать для оптимизации своей работы. Чтобы их использовать, вам необходимо записать их в файл. Следующий параграф посвящен установке макроса Excel. Пропустите эту часть, если вы уже знакомы с этим.

Table of Contents
Как включить макросы в Excel

В Excel нажмите комбинацию клавиш alt + F11. Это приведет вас к редактору VBA в MS Excel. Затем щелкните правой кнопкой мыши папку Microsoft Excel Objects слева и выберите Insert => Module. Это место, где сохраняются макросы. Чтобы использовать макрос, вам нужно сохранить документ Excel как макрос. Из табуляции File => Save as, выберите Save as macro-enabled Workbok (расширение .xlsm) Теперь пришло время написать свой первый макрос!

1. Копирование данных из одного файла в другой.

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

2. Отображение скрытых строк

Иногда большие файлы Excel можно содержать скрытые строки для большей ясности И для лучшего удобства пользователей. Вот один макрос, который отобразит все строки из активной рабочей таблицы:

Читайте так же:
Как войти в безопасный режим через bios
3. Удаление пустых строк и столбов

Пустые строки в Excel — может быть проблемой для обработки данных. Вот как избавиться от них:

4. Нахождение пустых ячеек
13. Создание сводной таблицы
14. Отправка активного файла по электронной почте

Мой любимый код VBA. Он позволяет вам прикреплять и отправлять файл, с которым вы работаете, с предопределенным адресом электронной почты, заголовком сообщения и телом сообщения! Сначала Вам нужно сделать референцию в Excel на Microsoft Outlook (в редакторе Excel VBA, нажмите tools => references и выберите Microsoft Outlook).

15. Вставка всех графиков Excel в презентацию PowerPoint

Очень удобный макрос, который позволяет вам добавлять все ваши графики Excel в презентацию Powerpoint одним щелчком мыши:

16. Вставка таблицы Excel в MS Word

Таблицы Excel обычно помещаются внутри текстовых документов. Вот один автоматический способ экспорта таблицы Excel в MS Word:

17. Извлечение слов из текста

Мы можем использовать формулы, если хотим извлечь определенное количество символов. Но что, если мы хотим извлечь только одно слово из предложения или диапазон слов в ячейке? Для этого мы можем сами создать функцию Excel с помощью VBA. Это одна из самых удобных функций VBA, поскольку она позволяет создавать собственные формулы, которые отсутствуют в MS Excel. Давайте продолжим и создадим две функции: findword() и findwordrev():

Отлично, мы уже создали две новые функции в Excel! Теперь попробуйте использовать их в Excel. Функция = FindWordRev (A1,1) берет последнее слово из ячейки A1. Функция = FindWord (A1,3) берет третье слово из ячейки A1 и т. Д.

18. Защита данных в MS Excel

Иногда мы хотим защитить данных нашего файла, чтобы только мы могли его изменять. Вот как это сделать с VBA:

Поздравления! Поскольку вы все еще читаете это, вы действительно заинтересованы в изучении VBA. Как вы уже сами видели, язык программирования VBA чрезвычайно полезен и может сэкономить нам много времени. Надеюсь, вы нашли эту информацию полезной и использовали ее, чтобы стать мастером MS Excel, VBA и компьютерных наук в целом.

Макрос выпадающий список excel

Если Вы не сильны в программировании, но, при этом, Вам необходимо реализовать какую-либо задачу, выходящую за рамки стандартных функций и команд MS Excel, можно поискать решение в интернете. Решение, скорее всего, найдется в виде VBA кода, который необходимо скопировать и вставить в Вашу рабочую книгу, потом каким-то образом заставить этот код работать на Вас, в этой статье я расскажу, как это сделать.

Файлы для скачивания:

ФайлОписаниеРазмер файла:Скачивания
Пример14 Кб2494

Рассмотрим два примера:

1. Ищем и используем команду

Например, нам необходима команда, которая бы вставляла в выделенные ячейки цифру «1». Запускаем поисковик, набираем поисковую фразу, получаем результаты, начинаем просматривать, находим код примерно в таком виде:

Выделяем данный код (без нумерации строк, начиная со слова Sub) и нажимаем Ctrl+C. Переходим в свою рабочую книгу MS Excel и нажимаем сочетание клавиш Alt+F11, у вас откроется окно редактора VBA:

Как вставить готовый макрос в рабочую книгу?

В левом окне «Project — VBA Project» выбираем (щелкаем мышкой) нашу рабочую книгу, в которую необходимо вставить макрос, например, «VBAProject (Книга2)»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_5.png

В пункте меню «Insert» выбираем «Module»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_2.png

В левом окне «Project — VBA Project» у вас должна появиться новая папка «Modules» и в ней новый объект «Module1»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_3.png

Переходим курсором в правое «Большое» поле для ввода и нажимаем Ctrl+V, скопированный макрос вставиться в модуль:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_4.png

После чего закрываем редактор VBA и возвращаемся в рабочую книгу.

Если вы работаете в MS Excel 2007, 2010 или 2013, вам необходимо будет сохранить вашу рабочую книгу как «Книга Excel с поддержкой макросов (.xlsm)»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_16.png

В MS Excel 2003 достаточно будет просто сохранить файл.

Чтобы выполнить скопированный в книгу макрос выделяем ячейки, в которые необходимо вставить «1», нажимаем в меню «Вид» кнопку «Макросы» и в выпавшем списке выбираем пункт «Макросы» или нажимаем сочетание клавиш Alt+F8:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_8.png

Откроется диалоговое окно «Макрос», в списке макросов выбираем свой и нажимаем кнопку «Выполнить»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_9.png

Макрос выполнится — в выделенные ячейки вставиться «1»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_20.png

Макросы в MS Excel можно вставлять в следующие места:

  • В Модуль, обычно вставляют код макросов, запуск которых будет производится по нажатию кнопки пользователем (как, например, в нашем случае) или код функций (формул);
  • В Рабочий лист, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий пользователя или изменения данных в листе (поменялись данный, макрос выполнился);
  • В Рабочую книгу, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий, производимых над книгой (файлом). Например, макрос, который запускается при открытии или закрытии книги, или при ее сохранении;
  • Так же макросы могут быть частью пользовательской формы.

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

Чтобы вставить код в Рабочий лист, в левом окне редактора VBA выберите соответствующий лист, щелкните по нему два раза левой кнопкой мышки, переместите курсор в правое поле ввода и вставьте код.

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_10.png

Для вставки кода в Книгу, выберите «ЭтаКнига»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_17.png

Давайте потренируемся. Вставьте код опубликованный ниже в «Лист1».

Данный макрос выводит информационное сообщение если вы введете в любую ячейку листа «2».

Вернитесь в рабочую книгу, перейдите в «Лист1» и введите в ячейку «А1» цифру «2» и нажмите Enter, после чего у вас должно появиться следующее сообщение:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_11.png

Если вы видите это сообщение, то вы все сделали правильно. Если нет, то вы вставили код куда-то не туда, повторите попытку.

При вставке кода, необходимо внимательно следить за тем, куда вы его вставляете. Это можно сделать посмотрев на то, что написано в заголовке окна редактора VBA:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_21.png

2. Ищем и используем функцию

Находим в интернете VBA код функции, которая подсчитывает, например, количество слов в ячейке:

Копируем код, нажимаем сочетание клавиш Alt+F11, откроется редактор VBA:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_22.png

Добавляем новый модуль в свою книгу и в этот модуль вставляем скопированный код:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_23.png

Закрываем редактор VBA и переходим в свою рабочую книгу. Создаем новый лист (необязательно) в ячейку A1 вводим текст «мама мыла раму». Встаем в ячейку, в которой хотим получить результат (количество слов), в меню «Формулы» нажимаем кнопку «Вставить функцию»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_12.png

В открывшемся окне «Вставка функции» в поле «Категория» выбираем «Определенные пользователем»

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_13.png

В списке доступных функций выбираем «КолСловВЯчейке», нажимаем «ОК»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_14.png

Вводим необходимые аргументы и нажимаем «ОК»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_15.png

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_24.png

Важно:

Если вы не сохраните книгу, в которую вставили макрос как «Книгу с поддержкой макросов», все модули с макросами удаляться и вам придется, потом, повторно проделывать всю эту работу.

Если при вставке макроса в модуль у вас вместо некоторого текста стоят красные знаки » . «

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_6.png

Это значит, что у вас проблема с кодировкой, которая наблюдается с копированием Кириллического текста из некоторых браузеров. Чтобы победить эту проблему, попробуйте вставить скопированный код в пустой лист MS Excel, как «Текст в кодировке Unicode». Для этого перейдите в книгу MS Excel, выберите или создайте пустой лист, встаньте в ячейку «A1» и нажмите сочетания клавиш Ctrl+Alt+V. Должно будет появиться меню «Специальной вставки», выберите пункт «Текст в кодировке Unicode» и нажмите «OK».

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_7.png

Код должен будет вставиться в рабочий лист без знаков вопроса:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_18.png

После этого, еще раз скопируйте вставленный в лист код, и вставить его уже в модуль.

Если вы не видите в редакторе VBA окна «Project — VBA Project», перейдите во вкладку меню «View» и в списке выберите пункт «Project Explorer» или нажмите сочетание клавиш Ctrl+R:

Встраивайте календарь для вставки дат в книги Excel, и он будет доступен другим пользователям

Встроенный календарь XLTools для рабочих книг Excel

Когда вы создаете какие-то документы или шаблоны в Excel и потом отправляете их своим коллегам, клиентам или партнерам для заполнения, вам хочется упростить им задачу. Вам также нужно сократить возможные ошибки ввода данных вручную, чтобы не тратить много времени на их очистку, когда вам вернут заполненные документы. А когда дело доходит до ввода дат – здесь люди бывают особенно «креативны».

Встроенный календарь можно добавить в рабочие книги и помочь пользователями со вводом дат и времени в ячейки:

Людям, которым вы отправляете файл, НЕ нужно устанавливать XLTools, чтобы использовать календарь. Он встроен в рабочую книгу в виде легкого макроса. Рабочую книгу требуется сохранить как файл с поддержкой макросов *.XLSM.

Перед началом работы добавьте «Встроенный календарь» в Excel

«Встроенный календарь» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.

Начните работу с инструментами XLTools

Как встроить календарь в рабочую книгу Excel

Убедитесь, что у вас включены параметры макросов для разработчика:

Вкладка «Разработчик» Безопасность макросов Отметьте флажком Доверять доступ к объектной модели проектов VBA .

Включить доступ к объектной модели проектов VBA

Вкладка XLTools В группе «Дата и Время» откройте выпадающий список Нажмите Встроить в эту книгу .

Как встроить календарь XLTools в книгу Excel

Если будет предложено сохранить книгу, нажмите Сохранить Сохраните файл в формате *.XLSM.

Календарь успешно встроен, сохраните как книгу с поддержкой макросов

Как изменить настройки Встроенного календаря

Настройки Встроенного календаря определяют, как календарь будет отображаться и работать в конкретной рабочей книге – как на вашем компьютере, так и на комьютерах других пользователей, которым вы отправите эту книгу.

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

Чтобы изменить настройки Встроенного календаря в книге:

Откройте вкладку XLTools Настройки Вкладка «Дата/Время».

Задать настройки встроенного календаря для доступа других пользователей

Как удалить Встроенный календарь из книги

Как удалить календарь из книги Excel

Если я отправлю книгу другим людям, календарь будет им доступен?

Когда вы встроите календарь в рабочую книгу и отправите ее другим пользователям, они смогут применять календарь в этой книге. Им НЕ потребуется устанавливать XLTools на свои компьютеры.

Встроенный календарь будет доступен большинству пользователей, но есть некоторые ограничения. Он будет доступен, если у пользователей:

О чем важно помнить, отправляя книгу другим людям

Вы можете отправить рабочую книгу со Встроенным календарем по электронной почте или загрузить на облачный диск, напр., Яндекс.Диск, Microsoft OneNote, Google Drive, Dropbox. Так же, как вы делитесь любым другим файлом.

Когда пользователи откроют рабочую книгу на своих компьютерах, она откроется в режиме защищенного просмотра. Чтобы редактировать книгу и использовать календарь, пользователям нужно Разрешить редактирование :

Разрешить редактирование макроса полученного по email

Разрешить редактирование макроса полученного через интернет

Мы предпринимаем все меры, чтобы обеспечить безопасность макроса Встроенного календаря, но обратите внимание:

Появляется предупреждение системы безопасности, что это значит?

Когда вы открыли Excel файл и видите на панели сообщений «Предупреждение системы безопасности: запуск макросов отключен», значит, в этой рабочей книге содержатся макросы, и Excel их отключил. Макрос – это набор команд, который служит для автоматизации задач.

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

Предупреждение безопасности в книге с поддержкой макросов

Чтобы включить все макросы, откройте Файл Параметры Центр управления безопасностью Параметры центра управления безопасностью Параметры макросов Выберите Включить все макросы :

Как получить источник выпадающего списка Excel в vba

Я использую код VBA для создания раскрывающегося списка множественного выбора. Код сделает каждый выпадающий список в целевой ячейке списком множественного выбора с функцией:

If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub

Источник раскрывающегося списка в целевой ячейке — =indirect(b14) , а b14 — еще один раскрывающийся список (одиночный выбор). Теперь, если значение b14 станет list1, я хотел бы, чтобы список ячеек моей цели стал списком множественного выбора. В любом другом случае я хочу, чтобы он работал в обычном режиме Excel. Я пытался предварительно кэшировать источник списка с помощью if Evaluate(Target.Validation.Formula1) = «=list1» then но я получаю ошибку несоответствия для Evaluate(Target.Validation.Formula1) . Как я могу это сделать?

РЕДАКТИРОВАТЬ: есть несколько примеров снимков экрана с моего рабочего листа, чтобы не неправильно понять его конструкцию.

A1: список именованного диапазона A51, B1: список именованного диапазона B52, список проверки данных B14 = список1

Список проверки данных D14 с формулой = КОСВЕННЫЙ (B14)

2 ответа

Я вижу, что другие проделали большую работу. Я не хотел «воровать» их решения, поэтому не читал их полностью. Надеюсь, мой вклад будет не лишним. Я смиренно продолжаю публиковать свой ответ.

Если в столбце с первыми раскрывающимися списками (столбец B) указанный раскрывающийся список уже присутствует, то наш результат «Список1» будет возможным значением. Это решение проверяет, является ли такое значение «List1», и соответственно создает второй раскрывающийся список:

Чтобы быть помещенным в модуль листов, он будет активироваться каждый раз при изменении выбора. Если выделение пересекается с диапазоном со вторым раскрывающимся списком, он вставит такой раскрывающийся список для каждой ячейки в указанном пересечении. Работает для выделения одной и нескольких ячеек. Я установил все возможные параметры, которые я мог бы представить как переменную, которую можно изменить в первой части подпрограммы после объявлений. Это должно делать то, что задавал вопрос.

Опять же, если вопрос требует, чтобы второй раскрывающийся список создавался только в следующих случаях:

  1. в соответствующей ячейке есть первый раскрывающийся список и
  2. указанный первый раскрывающийся список имеет конкретную Проверку.

То код, который я предлагаю, следующий:

Этот код похож на предыдущий, но фактически проверяет наличие первого раскрывающегося списка на основе указанного Validation.Formula1. Обратите внимание, что если вы хотите, чтобы второй раскрывающийся список создавался в соответствии с StrTrigger , а не фактической косвенной ссылкой на значение первого раскрывающегося списка, вы можете заменить строку

РЕДАКТИРОВАТЬ: Ниже приведен простой блок кода, который должен делать то, что вам нужно. Сначала я создал раскрывающийся список проверки данных в ячейке A1. Затем я создал список с именем List1 и указал в нем диапазон значений. Далее устанавливаю Список — & gt; Формула проверки данных должна быть =INDIRECT(B14) . И, наконец, я ввел текст List1 в ячейку B14.

Я запустил приведенный ниже тестовый сценарий, чтобы увидеть, что получилось.

Мой вывод был следующим:

При запросе только формулы возвращается =INDIRECT(B14) . При оценке формулы и возвращении имени она возвращает установленный мной диапазон. И, наконец, при проверке равенства с указанным диапазоном он возвращает true.

Я правильно понимаю? Можете ли вы попробовать запустить этот код в своей книге (обновить ссылку на ячейку проверки данных), а затем сказать мне, какая строка вызывает ошибку? КОНЕЦ РЕДАКТИРОВАНИЯ

Причина того, что ваш код не работает, заключается в том, что Evaluate(=indirect(B14)) возвращает не имя диапазона, а адрес диапазона. Итак, если List1 ссылается на Range («A1: A10»), тогда функция Evaluate вернет Sheet1! Range («A1: A10»). Когда вы пытаетесь сравнить строку («list1») с диапазоном, вы получаете ошибку несоответствия типа.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector