微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

输入框可防止用户在值空白时按Enter键

如何解决输入框可防止用户在值空白时按Enter键

我有以下代码Range("P" & Rows.Count).End(xlUp).offset(1).Value = InputBox("INTRODUCE ACT JUSTIFICATIV") 用户必须在输入框中输入字母

如果输入框中的值为空白且出现个性化错误消息,我想防止用户意外按下Enter键。

然后按“取消”按钮退出菜单

解决方法

将“用户”输入设置为变量,然后进行测试以查看其是否有效。

Dim usrInput as String

Do
    usrInput = InputBox("INTRODUCE ACT JUSTIFICATIV")

    If usrInput = vbNullString Then
        MsgBox "Your Error Message"
    End If
Loop While usrInput = vbNullString
,

请尝试下一种方法:

Sub testInputBoxValidate()
  Dim strInpB As String
  strInpB = InputBox("INTRODUCE ACT JUSTIFICATIV")
  If strInpB = "" Then MsgBox "You did not introduce anything!": Exit Sub
  Range("P" & Rows.count).End(xlUp).Offset(1).Value = strInpB
End Sub

还有一种强制用户输入内容的变体:

Sub testInputBoxValidate()
  Dim strInpB As String
Start:
  strInpB = InputBox("INTRODUCE ACT JUSTIFICATIV")
  If strInpB = "" Then MsgBox "You did not introduce anything!": GoTo Start
  Range("P" & Rows.count).End(xlUp).Offset(1).Value = strInpB
End Sub

我还建议您尝试其他检查。例如,“ ACT JUSTIFICATIV”必须没有特定的长度(数字位数)吗?像“ xxxx ###”这样的特定模式,其中“ ###”是三(x)位数字?

,

您可以使用Application.InputBox来给您更多的控制权。将提示用户,直到他们输入非空白字符串或按“取消”或“ x”按钮

Dim vInput As Variant: vInput = ""
Do
    vInput = Application.InputBox("INTRODUCE ACT JUSTIFICATIV",Type:=2) '2 -> String type
    If vInput = False Then 'User pressed Cancel or x button
        Exit Do
    ElseIf Len(vInput) > 0 Then 'User has entered non-blank value
        Range("P" & Rows.Count).End(xlUp).Offset(1).Value = vInput
        Exit Do
    End If
Loop
,

我认为您仅在输入内容后才能强制InputBox关闭。取而代之的是,将结果读入变量并循环直到输入有效的值

Dim answer as string,okay As Boolean
answer = ""
okay = False
Do While Not okay
    answer = InputBox("INTRODUCE ACT JUSTIFICATIV")
    On Error Resume Next
    okay = Range(answer & "1").Address <> ""
    On Error GoTo 0
Loop

现在,输入框将弹出,直到输入有效列为止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。