
사용자가 Excel 2007 시트에 0 또는 1만 입력하도록 제한하고 싶습니다.
이 작업을 수행하기 위해 데이터 > 데이터 유효성 검사 대화 상자를 사용하지만 공백 입력이 중단되지 않는 것으로 나타났습니다.
내가 원하는 것은 0이나 1이 아닌 다른 공백이 아닌 데이터를 입력할 때 나타나는 것과 마찬가지로 공백을 입력할 때 프롬프트가 표시되는 것입니다.
나는 시트를 0으로 채울 계획이다~ 전에검증을 적용하므로 잘못된 데이터로 인해 문제가 발생하지 않습니다.
또한 이 문제를 해결하기 위해 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 사이의 정수로 설정하고 "공백 무시"를 선택 취소합니다.