Список проверки Excel, разрешающий недопустимые входные данные

У меня есть рабочий лист с несколькими разными списками проверки, использующими именованные диапазоны на другом листе. Я понял, что ячейки, использующие диапазоны с пробелами, по-прежнему позволяют пользователю вводить все, что он хочет. Если в этом определенном диапазоне нет пробела, появляется обычное сообщение об ошибке Excel. Кто-нибудь знает, почему это происходит?

Пример: введите здесь описание изображения

Оба типа списков проверки являются настройками по умолчанию с установленным флажком «Игнорировать пустое место», «Раскрывающийся список в ячейке» и «Предупреждение об ошибке».

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

Обновлять:

Я попытался снять флажок «Игнорировать пробелы», но одна небольшая проблема заключается в том, что теперь пользователь не может нажать «Backspace», чтобы очистить ячейку. Они должны фактически выбрать одну из пустых строк в раскрывающемся списке.

Я обнаружил еще одну проблему, которая может быть связана только с моим кодом (а не с примером):

-если в ячейке уже выбрана опция

- пользователь пытается удалить ячейку через "Backspace" и появляется сообщение об ошибке Excel

-если я нажму «Повторить» и снова нажму на раскрывающийся список, я получу 3 из них:

Ошибка 50290

- ошибка из подпрограммы Worksheet_Change и возникает, несмотря на то, что у меня есть обработчик ошибок внутри нее


person KingKong    schedule 17.04.2015    source источник
comment
Только что обнаружил эту же ошибку на собственном горьком опыте... Пустая ячейка в списке проверки данных сделает всю проверку бесполезной/неблокирующей.   -  person flo5783    schedule 20.11.2020


Ответы (1)


Вам нужно снять флажок для Ignore blank в диалоговом окне проверки данных.

Затем Excel выдаст сообщение об ошибке, когда пользователь попытается ввести данные, даже если в именованном диапазоне, используемом при проверке данных, есть пустые ячейки.

введите здесь описание изображения

person slayernoah    schedule 19.04.2015
comment
@KingKong Application or object defined error, который вы получаете, зависит от кода. Это может быть частью другой проблемы. Пожалуйста, протестируйте эту проблему в отдельной таблице. - person slayernoah; 21.04.2015
comment
Если у вас есть настройки проверки данных, как показано в ответе выше, пользователям разрешено нажимать «Удалить», чтобы очистить ячейку. - person slayernoah; 21.04.2015
comment
См. образец рабочей тетради здесь expirebox.com/download/010875105c5239764e9d00b8a619be4c.html - person slayernoah; 21.04.2015
comment
Вы правы, я имел в виду Backspace. Я думаю, эти 2 не эквивалентны? - person KingKong; 21.04.2015
comment
Они не. Нажатие Backspace приводит к тому, что ячейка переходит в режим редактирования, а затем нажатие ввода приводит к запуску проверки данных. Если ячейка, в которой включена проверка данных, подобная этой, то для очистки ячейки необходимо использовать клавишу удаления. Или, если вы хотите использовать backspace, вам также нужно иметь пустую ячейку в списке. - person slayernoah; 21.04.2015