
Я хочу ограничить пользователей, позволяя им вводить только 0 или 1 в таблицу Excel 2007.
Для этого я использую диалоговое окно «Данные» > «Проверка данных», но обнаружил, что это не мешает им вводить пустые поля.
Мне бы хотелось, чтобы при вводе пробелов появлялось сообщение с подсказкой, как это бывает при вводе любых других непустых данных, отличных от 0 или 1.
Я планирую заполнить лист нулями.доприменяя проверку, поэтому не должно возникнуть проблем с ошибочными данными.
Кроме того, я открыт для использования VBA для решения этой проблемы.
решение1
Эта процедура события изменения будет просматривать любую ячейку, имеющую проверку, и отображать сообщение об ошибке проверки. Она не работает как проверка, поскольку не вызывает «повтор». Кроме того, она вставляет туда «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
решение2
В настройках проверки данных должна быть опция "Игнорировать пустые". Если отключить (снять флажок) эту опцию, это не даст желаемого результата?
Установите DV на целое число от 0 до 1 и снимите флажок «Игнорировать пустые поля».