Ihr Problem ist, dass die IsNumeric()
Funktion true zurückgibt, wenn die Zelle aufgrund ihrer Definition leer ist. Siehe Dokumentation zur IsNumeric()
Funktion hier
Um zu überprüfen, ob eine Zelle leer ist, können Sie die IsEmpty()
Funktion verwenden. Sie finden diesen Link für weitere Informationen zu dieser Funktion.
Daher müssen Sie in Ihrer Funktion überprüfen, ob die Zelle nicht leer ist und einen numerischen Wert enthält.
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