У меня была ячейка, которая применялась с проверкой списка. Пользователь может выбрать вариант 1, вариант 2, вариант 3, другие.

настройка

Это настройка

То, что я хочу, это то, что, если другие выбираются, то пользователь имеет право на таможенный въезд. Иначе, если ячейка пуста или с параметрами 1, 2, 3, пользователю не разрешается освобождать текст.

При выполнении настройки я не указывал "Показать предупреждение об ошибке после ввода неверных данных". Однако это позволит пользователю в любое время освободить текст.

Если я в "Показать предупреждение об ошибке после ввода неверных данных", пользователь не сможет освободить текст. Они могли выбирать только указанные параметры, то есть «Варианты 1,2,3 и другие».

Любые предложения и помощь приветствуются. Заранее спасибо.

2 ответа2

3

Исходя из того, что лучше всего я понял ваш вопрос. Я предлагаю предварительное решение VBA. Код создан в Excel 2013. Должно работать и в Excel 2016. Попробуйте и вернитесь назад, если это работает для вас.

В этом примере используется ячейка D3. Сначала создайте валидацию вручную в ячейке D3. Точные варианты: вариант 1, вариант 2, вариант 3 и другие.

Теперь откройте VBA Editor, нажав ALT + F11. Откроется окно редактора кода VBA. Дважды щелкните на Excel Object Sheet1, например, если это ваш намеченный лист, и в правом окне кода выберите «Рабочий лист» из первого выпадающего списка и «Изменить событие» из следующего выпадающего списка.

Вставьте в него следующий код VBA. Между Private Sub Worksheet_Change(ByVal Target As Range) и End Sub

If Target.Address = "$D$3" Then
    If Target.Value = "Others" Then
        With Target.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = False
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    End
    End If
End If

If Target.Address = "$D$3" Then
  With Target.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="Option 1,Option 2,Option 3,Others"
        .IgnoreBlank = False
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
  End With
End If

Сохраните файл как .xlsm и проверьте, как теперь работает проверка в ячейке D3.

2

Проанализировав ваш запрос, я пришел к выводу, что вам нужна условная проверка данных. Для этого вам нужно выполнить несколько шагов.

Шаг 1: Выберите ячейку, в которую вы хотите поместить выбор, и выберите команду «Проверка данных», затем «Настройка», «Список» и в текстовом поле «Источник» напишите ключевые слова. Как вы уже перечислили.

Шаг 2: Вам необходимо создать именованный диапазон данных для ключевых слов, таких как Option1 и другие. Помните, что для "Других" следует сохранять диапазон данных ПУСТО, но другие должны быть заполнены данными.

Шаг 3: Выберите ячейку, которую вы хотите проверить для ваших записей в соответствии с ключевыми словами, начните с команды проверки данных, затем выберите пункт «Параметры следующего набора настроек» и, наконец, напишите следующую формулу.

= ЕСЛИ (A2 = "Option1", OptionOne, ЕСЛИ (A2 = "Option2", OptionTwo, если (A2 = "Вариант3", OptionThree, другие)))

NB: Обратите внимание, что Option1, Option2 & Option3 - это имя, которое я дал ключевым словам. И OptionOne, OptionTwo и OptionThree - это заголовки столбцов для именованных диапазонов данных.

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

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

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