确定是否在将InputBox变量声明为Double的情况下按下了Cancel Button

A. *_*nes 1 excel vba

我将变量声明为double,以便可以对其执行数学运算。

我试图确定何时按下取消按钮。

Dim thckmax As Double

thckmax = InputBox("What is the maximum nominal thickness?", "Enter Max Nominal Thickness Measurement")
If thckmax = 0 Then
     GoTo Line3
End If

thckmin = InputBox("What is the minimum nominal thickness?", "Enter Min Nominal Thickness Measurement")
If thckmin = 0 Then
     GoTo Line3
End If
thcknom = (thckmax + thckmin) / 2
Worksheets(1).Range("C" & cols + 2).Value = thcknom
.
.
.
Line3: ...
Run Code Online (Sandbox Code Playgroud)

我知道我用过GoTo。这是一个快速轻松的修复程序,用于启动和运行代码。

我得到运行时错误13类型不匹配。我也试过CDbl(...)StrPtr(...)IsEmpty(...)和,而不是将它们设置等于零我也曾尝试

If thckmax = "" Then
    GoTo Line3
End If`
Run Code Online (Sandbox Code Playgroud)

我无法确定是否按下了cancel并转到Line3:

我发现的所有帖子都将声明的变量表示为字符串,而我的则是双精度型。

Dud*_*ott 5

您可以尝试执行类似的操作来测试输入框是否被取消以及是否为数字。

Dim thckmaxTest As String
Dim thckmax As Double

thckmaxTest = InputBox("What is the maximum nominal thickness?", "Enter Max Nominal Thickness Measurement")
If thckmaxTest <> vbNullString and IsNumeric(thckmaxTest) then thckmax = CDbl(thckmaxTest)
If thckmax = 0 Then
     GoTo Line3
End If

Dim thckminTest As String
Dim thckmin As Double 

thckminTest = InputBox("What is the minimum nominal thickness?", "Enter Min Nominal Thickness Measurement")
If thckminTest <> vbNullString and IsNumeric(thckmibTest) then thckmin = CDbl(thckminTest)
If thckmin = 0 Then
     GoTo Line3
End If
thcknom = (thckmax + thckmin) / 2
Worksheets(1).Range("C" & cols + 2).Value = thcknom
Run Code Online (Sandbox Code Playgroud)