Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用空输入单击“确定”后出现application.inputbox错误_Excel_Vba_Inputbox - Fatal编程技术网

Excel 使用空输入单击“确定”后出现application.inputbox错误

Excel 使用空输入单击“确定”后出现application.inputbox错误,excel,vba,inputbox,Excel,Vba,Inputbox,我真的找了好几个小时,但找不到任何解决办法 您应该只在Inputbox中输入数字,当您点击ok时,如果没有任何数字或字符串,则会显示msgbox 第一部分很简单,但我总是通过点击OK得到错误信息 Public Sub test() Dim vntReturn As Variant vntReturn = Application.InputBox("Bitte Wert eingeben", "Eingabe", , , , , , 1) If StrPtr(vntReturn) = 0 Then

我真的找了好几个小时,但找不到任何解决办法

您应该只在Inputbox中输入数字,当您点击ok时,如果没有任何数字或字符串,则会显示msgbox

第一部分很简单,但我总是通过点击OK得到错误信息

Public Sub test()
Dim vntReturn As Variant
vntReturn = Application.InputBox("Bitte Wert eingeben", "Eingabe", , , , , , 1)
If StrPtr(vntReturn) = 0 Then
    MsgBox "Abbrechen gedrückt"
Else
    If vntReturn = False Then
        MsgBox "Nix eingegeben"
    Else
        MsgBox vntReturn
    End If
End If
End Sub

发生这种情况是因为您将此InputBox的类型声明为一个数字。因此excel将自动尝试更正此问题。您可以使用不带类型的InputBox,并编写自己的验证程序来检查它是否为整数

否则,您也可以在代码之前添加以下内容:

Application.DisplayAlerts = False

之后将其设置为True。现在,当您点击ok时,不会提示错误,但InputBox不会消失。您可以向输入框添加其他说明,以明确它需要一个数字。

之所以发生这种情况,是因为您将此输入框的类型声明为一个数字。因此excel将自动尝试更正此问题。您可以使用不带类型的InputBox,并编写自己的验证程序来检查它是否为整数

否则,您也可以在代码之前添加以下内容:

Application.DisplayAlerts = False

之后将其设置为True。现在,当您点击ok时,不会提示错误,但InputBox不会消失。您可以向输入框添加其他说明,以明确它需要一个数字。

@mehow:正如Alex D刚才所说:您的答案很相似;-) 首先我使用了mehow的代码,但现在我只创建了一个只有“OK按钮”的用户表单

因此,用户表单如下所示:


现在程序运行正常;)谢谢你们

@mehow:正如Alex D刚才所说:你的答案很相似;-) 首先我使用了mehow的代码,但现在我只创建了一个只有“OK按钮”的用户表单

因此,用户表单如下所示:


现在程序运行正常;)谢谢你们

虽然你回答的第一部分实际上可以解决这个问题,但我觉得你没有充分解释错误发生的原因。当您将
应用程序.InputBox
类型
参数1一起使用时,它就像一个函数一样工作。它试图评估盒子里的任何东西。如果不是数字,它就会抛出一个错误。因此,请快速查看我答案中的代码,以便更好地理解如何处理这种情况。好吧,我现在已经使用了您的代码,这正是我想要的。如果我只是点击“确定”,什么都不会发生,没有错误消息等。但是现在如果我输入一个字母,就不会出现错误消息,至少应该有一个字符串的错误消息。。。。怎么可能呢?@Tommy因为你接受了Alex的答案,所以你用的是哪种答案?但我想你用的是我答案中的代码,实际上他说我只是在输入框中声明你不允许使用字符串。不幸的是,你不可能总是两全其美,因为如果它也是字符串,它根本不会接受输入。和@mehow我们有几乎相同的解决方案,我在前面发布了,并解释了为什么会发生这种情况。我认为这是一个没有实际意义的观点,但如果你只是为了这些观点而这样做的话,我早些时候把你的帖子投了更高的票。@mehow没有指责任何事情,哈哈,只是说;)。到目前为止,我一直很高兴。这是一个很好的分散注意力和从工作中解脱出来的方法。虽然你回答的第一部分实际上可以解决问题,但我觉得你没有完全解释错误发生的原因。当您将
应用程序.InputBox
类型
参数1一起使用时,它就像一个函数一样工作。它试图评估盒子里的任何东西。如果不是数字,它就会抛出一个错误。因此,请快速查看我答案中的代码,以便更好地理解如何处理这种情况。好吧,我现在已经使用了您的代码,这正是我想要的。如果我只是点击“确定”,什么都不会发生,没有错误消息等。但是现在如果我输入一个字母,就不会出现错误消息,至少应该有一个字符串的错误消息。。。。怎么可能呢?@Tommy因为你接受了Alex的答案,所以你用的是哪种答案?但我想你用的是我答案中的代码,实际上他说我只是在输入框中声明你不允许使用字符串。不幸的是,你不可能总是两全其美,因为如果它也是字符串,它根本不会接受输入。和@mehow我们有几乎相同的解决方案,我在前面发布了,并解释了为什么会发生这种情况。我认为这是一个没有实际意义的观点,但如果你只是为了这些观点而这样做的话,我早些时候把你的帖子投了更高的票。@mehow没有指责任何事情,哈哈,只是说;)。到目前为止,我一直很高兴。这是一个很好的分心和休息,从做工作。虽然你的问题已经改变,因为第一次张贴我不打算评论你的答案。很高兴你的问题在第一次发帖后有所改变,但我不会对你的答案发表评论。很高兴分类了