Não é possível calcular no número decimal

0

Porfavor,cliquenolinkparaverminhaimagem

Aquiestáomeucódigo.Eunãoentendoporqueoseunúmerodecimalsempreéfalso.Oquedevofazer?

Subcalcu()DimaAsIntegerDimbAsIntegerDimcAsIntegerDimdAsIntegerDimg1AsDoubleDimg2AsDoubleDimhdpAsDoubleDimts1AsDoubleDimts2AsDoubleApplication.ScreenUpdating=Falsea=Cells(Rows.Count,"C").End(xlUp).Row

For b = 1 To a
  If IsNumeric(Cells(b, "C").Value) Then
    hdp = Cells(b, "G")

    ts1 = Cells(b, "L")
    ts2 = Cells(b, "M")
    t1 = Cells(b, "F")
    t2 = Cells(b, "H")
    g1 = ts1 - hdp
    g2 = ts2 - hdp

    v1 = 1.72
    v2 = 2.1
    v3 = 1.9
    v4 = 1.8
    v5 = 2

    If InStr(t1, "K") And g1 < ts2 Then
      Cells(b, "J") = "0"
    ElseIf InStr(t1, "K") And g1 = ts2 Then
      Cells(b, "E") = 1
      Cells(b, "J") = 1
    ElseIf InStr(t2, "K") And g2 < ts1 Then
      Cells(b, "E") = "0"
    ElseIf InStr(t2, "K") And g2 = ts1 Then
      Cells(b, "E") = 1
      Cells(b, "J") = 1
    Else
      Cells(b, "E") = "error"
      Cells(b, "J") = "error"
    End If
  End If
Next

Application.ScreenUpdating = True

End Sub
    
por Nuttapong Phunsub 18.02.2016 / 17:03

1 resposta

0

Se você está se referindo a por que você está recebendo error , não tem nada a ver com os números decimais.

Seu teste para a linha 2 está fazendo 5 (Coluna L) - 1.5 (Coluna G), que é igual a 3.5. Você então testa se é menor que 1, ou igual a 1 (coluna M). Não é, então você está recebendo error .

O teste falha completamente onde você tem uma letra G na Coluna H, já que o número que você obtém é maior que o número na Coluna M, com o qual está testando.

Como não tenho ideia do que você está tentando fazer ou qual deve ser o resultado, não posso ajudá-lo mais, mas a razão pela qual ele está falhando não é devido a decimais, ele está realmente fazendo os testes exatos que você disse isso, e chegando com os resultados corretos.

    
por 18.02.2016 / 17:17