在输入框中输入0时,代码不会执行

时间:2018-11-15 21:41:04

标签: excel vba

我制作了一种使用输入值对多个像元进行乘法,除法,加法和减法的表格。

一切正常,除非我在输入框中输入0,否则代码将无法执行。

Private Sub cmdMultyply_Click()
Dim cell_value As Double
Dim rng As Range
Dim cell As Range
Dim nmr As Variant
Dim formula As String

nmr = Application.InputBox("Insert a number.", "INPUT", Type:=1)

If nmr = False Then Exit Sub

Set rng = Selection

For Each cell In rng
    If cell.Value <> "" Then
        cell_value = cell.Value
        formula = Replace(cell.FormulaLocal, "=", "")
        cell.FormulaLocal = "=(" & formula & ")" & "*" & nmr
    End If
Next

Unload Me
End Sub

2 个答案:

答案 0 :(得分:4)

If nmr = False Then Exit Sub

InputBox返回一个Variant。如果该变体的子类型为Boolean,则说明您不需要处理它。

因此请验证变体子类型:

If VarType(nmr) = vbBoolean Then Exit Sub

现在"False"0都是有效值。

答案 1 :(得分:2)

这是因为

0 = False

它退出子

更改

  

If nmr = False Then Exit Sub

收件人

If CStr(nmr) = "False" Then Exit Sub