1

Как я могу заставить свою функцию IF возвращать сообщение об ошибке, если в ячейку C4 не было введено ни одного номера? Мой код ниже запускается, если вы вводите число, но он также работает, если ячейка C4 пуста, только когда я ввожу текст в ячейку, появляется сообщение об ошибке.

Private Sub CommandButton1_Click()
    If IsNumeric(Range("C4")) = True Then
        FinishClear
    Else
        MsgBox "Please enter Invoice number"
    End If
End Sub

2 ответа2

2

Ваша проблема в том, что IsNumeric() возвращает true, если ячейка пуста из-за ее определения. Смотрите документацию по функции IsNumeric() здесь

Чтобы проверить, пуста ли ячейка, вы можете использовать функцию IsEmpty() . Вы можете увидеть эту ссылку для получения дополнительной информации об этой функции.

Таким образом, в вашей функции вам необходимо убедиться, что ячейка не пуста и содержит числовое значение.

Private Sub CommandButton1_Click()
    If IsNumeric(Range("C4").value) And Not IsEmpty(Range("C4")) Then
        FinishClear
    Else
        MsgBox "Please enter Invoice number"
    End If
End Sub
0

Проблема в том, что вы не называете ценность

Range("C4") - объект ячейки. Это имеет много свойств, одним из которых является ценность. Таким образом, вам необходимо обновить Range("C4").Value

Вы также проверяете, является ли оно числовым, но вам нужно проверить, пусто оно или нет.

Это означает, что ваше заявление должно быть

If Range("C4").Value <> "" Then

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .