При вводе 0 в поле ввода код не выполняется - PullRequest
0 голосов
/ 16 ноября 2018

Я сделал форму для умножения, деления, сложения и вычитания нескольких ячеек с входным значением.

Все работает, кроме случаев, когда я ставлю 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 голосов
/ 16 ноября 2018
If nmr = False Then Exit Sub

InputBox возвращает Variant.Если подтип этого варианта - Boolean, вы знаете, что вам не нужно обрабатывать его.

Итак, проверьте подтип варианта:

If VarType(nmr) = vbBoolean Then Exit Sub

А теперь оба "False" и 0 действительные значения.

0 голосов
/ 16 ноября 2018

Это потому, что

0 = False

И это выходит из подпрограммы

Изменение

If nmr = False Then Exit Sub

К

If CStr(nmr) = "False" Then Exit Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...