Попытка создать проверку данных (абсолютно без макросов, это просто не вариант), где пользователь может вводить только основные символы (AZ, az, 0-9, -, ~, ',\,/). Так что я пытался для этого нужно создать проверку, которая проверила определенные символы и выдавала сообщение об ошибке, если они их нашли. Итак, моя формула проверки данных следующая.

= ЕОШИБКА (FIND ("&", D17:D110))

Где D17:D110 - диапазон ячеек, которые будут проверены. Таким образом, после того, как пользователь вводит свои значения, если ячейка, которую он в данный момент редактирует, содержит «&», это вызовет ошибку. Этот метод работает прекрасно. Тем не мение! Мне нужно запретить больше, чем этот персонаж, поэтому я попытался.

= ЕОШИБКА ((ИЛИ (FIND ("&", D17:D110), FIND ("^", D17:D110))))

Это не только не работает для «^», но и прерывает поиск «&».

Так что мне нужен способ либо

  1. Заблокировать несколько символов запрещено
  2. Разрешить только перечисленные выше символы.

Предостережение: из-за того, как формула добавляется (.NET OfficeOpenXml), я не могу ссылаться ТОЛЬКО на одну ячейку, как вы, если бы вы ввели ее в Excel и добавили формулу. Это ограничение API. Вот почему я нашел способ использовать весь диапазон.

1 ответ1

0

Это потому, что он генерирует ошибку внутри ИЛИ, делая ИЛИ не в состоянии оценить. Кроме того, вы должны использовать AND.

Попробуй это:

= И (ЕОШИБКА (FIND ("&", А1)), ЕОШИБКА (FIND ("^", А1)))

Использование AND, потому что ISERROR будет TRUE, если символ не найден.

и (notA, notB) = нет (или (A, B))

так что если A = true означает & найдено, а B = true означает ^ найдено, я полагаю, что вы можете видеть логику

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