Я посмотрел на несколько примеров для моего вопроса, но не смог найти ответ, который работает.
Справочная информация: у меня есть список элементов (скажем, яблоко, апельсин, банан) в Sheet1 (A2: A77, который уже является определенным диапазоном с именем «Liste»). Затем я имею на другом листе (скажем, Sheet2) несколько ячеек, где появляется пользовательская форма (созданная с помощью кода VBA), где пользователь может выбрать элемент и нажать «ОК».
Однако из-за характера пользовательской формы (и списка) у вас могут быть орфографические ошибки и т. Д., И они все равно будут приняты. Поэтому я хотел бы создать проверку, где он соответствует входным данным для данного списка (чтобы пользователи не могли добавлять что-либо еще). Форма пользователя / код специально предназначена для обеспечения возможности поиска (вместо простого списка проверки данных).
Проблема: я попытался создать это с помощью кода vba, который проверяет ввод, сопоставляет его со списком Sheet1 и, если совпадений нет, показывает сообщение msgbox с оператором. Это частично сработало (для некоторых писем, но не для других, очень странно).
Вот код, который у меня был:
Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim rSearchRng As Range
Dim vFindvar As Variant
If Not Intersect([B7:B26], Target) Is Nothing Then
Set rSearchRng = Sheet4.Range("Liste")
Set vFindvar = rSearchRng.Find(Target.Value)
If Not vFindvar Is Nothing Then
MsgBox "The Audit Project Name you have entered is not valid. Please try again!", vbExclamation, "Error!"
Selection.ClearContents
End If
End If
Application.EnableEvents = True
End Sub
Таким образом, я думал о создании этого сообщения об ошибке с простой проверкой данных.
Проверка данных
Вопрос Можно ли получить это сообщение об ошибке с проверкой данных?
Спасибо V
Всего 2 ответа
=Liste
как показано здесь: Проверьте это. Теперь у вас должен быть раскрывающийся список допустимых вариантов, и если вы попытаетесь вручную ввести неверный вариант, вы получите указанное вами сообщение об ошибке.
В качестве примечания: если вы хотите, чтобы проверка данных полностью запрещала / запрещала любую запись, отсутствующую в списке, вам необходимо установить для параметра «Предупреждение об ошибке -> стиль» значение «Стоп» вместо «Предупреждение».
Попробуйте следующую формулу:
= NOT (ISERROR (FIND ( "-" & A1 & "-" (TEXTJOIN ( "-", TRUE, Лист1 A1: A77))))!)
Это объединяет все тексты, а затем посмотреть, что находится в ячейке в списке. Я помещаю это между черточками, чтобы препятствовать тому, чтобы это приняло частичные.