@krecikBMC: nic z tego, drukuję wyniki po każdym kroku.
Dopiero wprowadzenie k3 = dochód.Value i podmianie przy if "dochód" na k3 daje radę, ale nie mam pojęcia dlaczego, w końcu to ciągle to samo, CInt() też w niczym nie pomaga.
A wprowadzałeś w ComboBox czy dałeś luźną zmienną "dochód"?
@przemilcze: Luźną, nie chciało mi się klepać tego wszystkiego. Skąd wartość pochodzi raczej nie powinno mieć znaczenia o ile jest dobrze przekazana dalej.
~~ Dla potomności - zająłem się niepotrzebnie zmienną k1 (która jest zasysana z arkusza), a nie ComboBox. Z tego co kojarzę zwraca on wartość String (a może i Variant...), zmyliło mnie to, że komendy IsNumeric nie krzyczą o błędzie, tj. przyjąłem, że program widzi, że to liczba.
Wystarczy dodać CInt(dochód) [lub CInt(dochód.value)] i wtedy zmienne się zgodzą, i program dokona obliczeń.
O tyle to ciekawe, że nie przeszkadza to komendzie IsNumeric (czy liczba), ani przy obliczeniach bezpośrednich (jak wpisywałem <500, a nie 500 Then ...
i po zamianie
If IsNumeric(dochód.Value) and CInt(dochód.Value) > k1 Then ..._
to się wykrzaczało gdy to liczba nie była (Type mismatch), bo tekst cannot into liczba, pociąłem więc na 2 kroki (jeżeli liczba, to jeżeli > k1). Przy 1. wpisie zwyczajnie wtedy ignorowało, no
Wartość "dochód" to dochód wpisany w to pole.
To działa:
If dochód > 500 And dochód <= 1000 Then
(…)
End If
A to nie działa:
Dim k1, k2 As Integer
k1 = 500
k2 = 1000
If dochód > k1 And dochód <= k2 Then
(…)
End If
Dlaczemu?! ( ͡° ʖ̯ ͡°)
#programowanie #vba
Dopiero wprowadzenie
k3 = dochód.Value
i podmianie przy if "dochód" na k3 daje radę, ale nie mam pojęcia dlaczego, w końcu to ciągle to samo, CInt() też w niczym nie pomaga.
A wprowadzałeś w ComboBox czy dałeś luźną zmienną "dochód"?
formant ComboBox < 100 // nie działa
zmienna = formant ComboBox < 100 // działa
ComboBox ma zabezpieczenia typu IsNumeric, zmieniam też niepotrzebnie ten integer na integer dla pewności i nie chwyta, nie ogarniam...
~~
Dla potomności - zająłem się niepotrzebnie zmienną k1 (która jest zasysana z arkusza), a nie ComboBox. Z tego co kojarzę zwraca on wartość String (a może i Variant...), zmyliło mnie to, że komendy IsNumeric nie krzyczą o błędzie, tj. przyjąłem, że program widzi, że to liczba.
Wystarczy dodać CInt(dochód) [lub CInt(dochód.value)] i wtedy zmienne się zgodzą, i program dokona obliczeń.
O tyle to ciekawe, że nie przeszkadza to komendzie IsNumeric (czy liczba), ani przy obliczeniach bezpośrednich (jak wpisywałem <500, a nie 500 Then ...
i po zamianie
If IsNumeric(dochód.Value) and CInt(dochód.Value) > k1 Then ..._
to się wykrzaczało gdy to liczba nie była (Type mismatch), bo tekst cannot into liczba, pociąłem więc na 2 kroki (jeżeli liczba, to jeżeli > k1). Przy 1. wpisie zwyczajnie wtedy ignorowało, no