input框error handling

我在处理与input框“取消”单击相关的错误时遇到问题。 换句话说,如果input的值为空,它将在子内返回一个错误。 我试图环顾四周,仍然似乎无法得到它是正确的。 这是我的尝试:

Private Sub bttnSavingsExpected_Click() Dim expected() As String Dim nPeriods As Integer Dim counter As Integer Dim savings As Single With ActiveSheet.Range("A13") nPeriods = Range(.Offset(1, 0), .End(xlDown)).Rows.Count End With ReDim expected(1 To nPeriods) counter = 1 For counter = 1 To nPeriods expected(counter) = Range("A13").Offset(counter, 0).Value Next TryAgain: On Error GoTo ErrH counter = 1 For counter = 1 To nPeriods savings = InputBox("How much savings do you expect from " & expected(counter) & "?", "Savings?", Range("A13").Offset(counter, 1).Value) If savings = "" Then Exit Sub Else Range("A13").Offset(counter, 1).Value = savings End If Next Exit Sub ErrH: MsgBox "Please enter value. If the default value is desired then please click 'OK'.", vbOKOnly, "Do Not Click Cancel" GoTo TryAgain End Sub 

有了这个尝试,MsgBox显示第一次点击是否有input,即使我点击“确定”。 单击“确定”或“取消”的第二次尝试导致被踢回编辑器。

你已经Dim savings As SingleIf savings = "" Then 。 这总是会出错

尝试使用Dim savings As Variant