Как я препятствую тому, чтобы пользователи ввели пустое значение в лист Excel?

Я хочу ограничить пользователей вводом или всего 0 или 1 в листе Excel 2007.

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

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

Я планирую заполнить лист 0s прежде, чем применить проверку, таким образом, не должно быть проблемы с ошибочными данными.

Кроме того, я открыт для использования VBA для решения этой проблемы.

1
задан 23.12.2010, 23:19

2 ответа

Эта процедура обработки событий изменения посмотрит на любую ячейку, которая имеет проверку, и отобразите сообщение об ошибке от проверки. Это не работает как проверка, в которой это не вызывает "повторную попытку". Кроме того, это придерживается '1' там, если это удалено. Вы могли поместить старое значение там, но потребуется больше работы, и это обычно - что-то, чего я стараюсь избегать.

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim sForm As String

    On Error Resume Next
        sForm = Target.Validation.Formula1
    On Error GoTo 0

    If Len(sForm) > 0 Then 'has validation
        If IsEmpty(Target.Value) Then 'cell was deleted
            MsgBox Target.Validation.ErrorMessage, vbOKOnly, Target.Validation.ErrorTitle
            Application.EnableEvents = False
                Target.Value = 1
            Application.EnableEvents = True
        End If
    End If

End Sub
1
ответ дан 17.12.2019, 00:28

Должна быть опция в настройках Data Validation для "Игнорирования пробела". Если Вы отключаете (сняли флажок) с опцией разве, которая не делает то, чего Вы требуете?

Установите DV на Целое число между 0 и 1, и снятие флажка "Игнорируют пробел"

0
ответ дан 17.12.2019, 00:28

Теги

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