Verifique o texto no Excel?

1

Como posso obter minha função IF para retornar uma mensagem de erro se nenhum número foi inserido na célula C4. Meu código abaixo será executado se você digitar um número, mas também será executado se a célula C4 estiver vazia, somente quando eu inserir o texto na célula, aparece a mensagem de erro.

Private Sub CommandButton1_Click()
    If IsNumeric(Range("C4")) = True Then
        FinishClear
    Else
        MsgBox "Please enter Invoice number"
    End If
End Sub
    
por jase8888 13.06.2017 / 10:34

2 respostas

2

Seu problema é que a função IsNumeric() está retornando true se a célula estiver vazia devido à sua definição. Veja a documentação da função IsNumeric() aqui

Para verificar se uma célula está vazia, você pode usar a função IsEmpty() . Você pode ver este link para obter mais informações sobre essa função.

Assim, na sua função, você precisa verificar se a célula não está vazia e se ela contém um valor numérico.

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
    
por 13.06.2017 / 18:57
0

O problema é que você não está chamando o valor

Range("C4") é o objeto da célula. Isso tem muitas propriedades, uma das quais é o valor. Como tal, você precisa atualizar para Range("C4").Value

Você também está verificando se é numérico, mas precisa verificar se está vazio ou não.

Isso significa que sua declaração if deve ser

If Range("C4").Value <> "" Then
    
por 13.06.2017 / 14:49