如何防止使用者在 Excel 工作表中輸入空白值?

如何防止使用者在 Excel 工作表中輸入空白值?

我想限制使用者在 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 之間的整數並取消選取“忽略空白”

相關內容