用空input单击确定后出现application.inputbox错误

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

你只应该input数字到input框,一个msgbox应sppears,当你没有任何号码或string只要点击确定…

第一部分很简单,但我总是得到一个错误信息,只需点击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的Type声明为一个数字。 所以,Excel将自动尝试纠正这一点。 你可以使用一个没有Type的InputBox,并编写你自己的validation来检查它是否是一个整数。

否则,你也可以在你的代码之前添加这个:

 Application.DisplayAlerts = False 

之后将其设置为True。 现在,当你点击确定,你将不会提示错误,但input框不会消失。 你可以添加额外的指令到input框来清除它需要的数字。

@mehow:就像Alex D刚才所说的:你的答案是相似的;-)首先,我用了多余的代码,但是现在我只用一个“确定button”来创build一个用户表单。

 Private Sub Rechnen_Click() Dim i As Integer ' Variable deklarieren Dim Sum As Integer Dim counter As Variant i = 0 ' deklariert, löst beim Kompilieren keinen Fehler aus Sum = 0 ' nicht deklarierte Variable löst beim Kompilieren einen Fehler aus counter = TextBox1.Value Application.DisplayAlerts = False If Not IsNumeric(counter) Then Exit Sub Else Unload Userform1 On Error Resume Next Do Until i >= counter Zahl = InputBox("Pls enter a number:", i + 1 & ". Versuch") Sum = Sum + Zahl i = i + 1 If Not IsNumeric(Zahl) Then MsgBox "calculation premature cancelled!" Exit Do End If Loop Ausgabe = MsgBox("Die Summe lautet: " & Sum, vbInformation, "Ergebnis") Question = MsgBox("is it enough?", vbYesNo + vbQuestion, "repeat") If Question = vbNo Then Userform1.Show Else Unload Userform1 Exit Sub End If End If End Sub 

所以用户窗体如下所示:

在这里输入图像描述

现在程序工作正常;)谢谢你们!