O VBA não entende inequações simultâneas, como as que você colocou: 1 <= a / c <= (3 / 2)
voce deve escrever nesse caso:
If (h / c <= (1 / 2)) And ( a / c >=1 Or a/c <= (3 / 2)) Then
...
O bruno respondeu muito bem a questão, o VBA não reconhece inequações simultâneas, só vou corrigir a formação da condicional, pois o autor queria uma condição que mostrasse um resultado "entre", e quando queremos um resultado que esteja entre duas variáveis utilizamos o SE ... AND .... AND.
Na tabela verdade:
^ = and
+ = or
V ^ V = V
V + F = V
logo se utilizar o "OR" para determinar o LS e o LI de um Range, pode ser que tanto a variável LS quanto a variável LI autorize a entrada no bloco condicional.
Portanto ficaria assim:
If (h / c <= (1 / 2)) And ( a / c >=1 And a/c <= (3 / 2)) Then
ajuda vba iniciante
em VBA
Postado · Editado por Marleyson
O bruno respondeu muito bem a questão, o VBA não reconhece inequações simultâneas, só vou corrigir a formação da condicional, pois o autor queria uma condição que mostrasse um resultado "entre", e quando queremos um resultado que esteja entre duas variáveis utilizamos o SE ... AND .... AND.
Na tabela verdade:
^ = and
+ = or
V ^ V = V
V + F = V
logo se utilizar o "OR" para determinar o LS e o LI de um Range, pode ser que tanto a variável LS quanto a variável LI autorize a entrada no bloco condicional.
Portanto ficaria assim:
If (h / c <= (1 / 2)) And ( a / c >=1 And a/c <= (3 / 2)) Then
[...] Código se Verdadeiro [...]
End If
espero ter somado.
ATT