Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA Excel - błąd w funkcji

monika278 23 Maj 2014 19:36 1023 6
  • #1 23 Maj 2014 19:36
    monika278
    Poziom 5  

    Witam, czy mógłby mi ktoś pomóc znaleźć błąd w tej funkcji?

    Sub zad16()
    Dim x As Single
    Dim y As Single
    Dim z As Single

    x = InputBox("Podaj swoją wagę w kilogramach")
    y = InputBox("Podaj swój wzrost w metrach")

    z = x / Sqr(y)

    If z > 0 And z < 20 Then MsgBox "Niedowaga" Else If 20 <= z And z < 24 Then MsgBox "Waga prawidłowa" _
    Else If 25 <= z And z < 29 Then MsgBox "Nadwaga" _
    Else If 30 <= z And z < 39 Then MsgBox "Otyłość" _
    Else If z >= 40 Then MsgBox "Otyłość patologiczna"
    End Sub

    0 6
  • #2 23 Maj 2014 20:02
    JRV
    Specjalista - VBA, Excel

    Witaj.
    Błąd tylko dlatego, że to nie funkcja tylko procedura.
    To działa. Alt+F8 - Wybierz zad16 i uruchom makra

    0
  • #3 23 Maj 2014 20:05
    monika278
    Poziom 5  

    Owszem działa, jednak wyświetla tylko okna z tekstem "Niedowaga" lub "Otyłość patologiczna" pomija środkowe wartości i nie wiem dlaczego.

    0
  • #4 23 Maj 2014 20:16
    JRV
    Specjalista - VBA, Excel

    Waga 30 wzrost 2 - Waga prawidlowa wg tej formuly :|

    0
  • #5 23 Maj 2014 20:20
    monika278
    Poziom 5  

    W tym przypadku powinien wyświetlać się tekst "Niedowaga" a nie "Waga prawidłowa". Właśnie nie wiem co jest źle, jest jakiś błąd? Czy może da się to zadanie zrobić inaczej?

    0
  • Pomocny post
    #6 23 Maj 2014 20:37
    JRV
    Specjalista - VBA, Excel

    Z jakiegoś powodu masz dziwnymi arytmetycznych - Sqr - pierwiastek kwadratowy z 2=1,41

    30/1,41=21,28 co jest =>20 i <24

    Być może trzeba z=x/y^2

    0
  • #7 23 Maj 2014 20:41
    monika278
    Poziom 5  

    No tak, zamiast potęgi wstawiłam pierwiastek. Teraz wszystko działa jak powinno. Dziękuję bardzo! :)

    0