Excel Form ComboBox

Odpowiedz Nowy wątek
2019-06-03 12:44
0

Witam,

Z uwagi na to, że jestem bardzo początkujący mam taki problem. Stworzyłem w Excelu formularz gdzie jest klika pól typu ComboBox i TextBox. Pola combo mam wypełnione kodem:

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

Chciałbym wykonać obliczenia matematyczne (odejmowanie) oparte na DlugoscA i DlugoscB. Tworząc zapis np

Me.Roznica = Me.DlugoscA.Value - Me.Dlugosc.Value

dostaje błąd Type Mismatch. problemem jest wartość 1.5. Jeśli w polu kombi wybrana jest wartość 1 liczy się poprawnie.
Proszę o info jak zadeklarować tablice, żeby liczyło poprawnie.

THX
Pozdrawiam

Pozostało 580 znaków

2019-06-03 13:23
0

Jak tworzysz zmienną to jest typu int? Zmień na double

Pozostało 580 znaków

2019-06-03 13:52
0
pavarotti napisał(a):

Jak tworzysz zmienną to jest typu int? Zmień na double

Właśńie nie wiem jak zadeklarować tą tablicę. Jak dałem

Dim TypA As String
Dim TypB As String
Dim DlugoscA As Double
Dim DlugoscB As Double

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

To mi wywala błąd "Invalid qualifier"

Jak nie deklaruję zmiennych to działa ale sie nie odejmuje (no bo pewnie myśli, że to text)

Pozdrawiam

Pozostało 580 znaków

2019-06-03 15:04
0
Zorro_ napisał(a):
pavarotti napisał(a):

Jak tworzysz zmienną to jest typu int? Zmień na double

Właśńie nie wiem jak zadeklarować tą tablicę. Jak dałem

Dim TypA As String
Dim TypB As String
Dim DlugoscA As Double
Dim DlugoscB As Double

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

To mi wywala błąd "Invalid qualifier"

Jak nie deklaruję zmiennych to działa ale sie nie odejmuje (no bo pewnie myśli, że to text)

Pozdrawiam

To jak zadeklarujesz wartości zanim trafią do comboboxa nie ma dużego znaczenia, gdyż on zwraca tekst. W takim razie powinieneś przekonwertować wartość przed obliczeniem, np. tak:

Dim a As Double
Dim b As Double

a = CDbl(Me.ComboBox1.Value)
b = CDbl(Me.ComboBox2.Value)

TextBox1.Value = a - b

Pozostało 580 znaków

2019-06-10 15:41
0
JustCuzICan napisał(a):
Zorro_ napisał(a):
pavarotti napisał(a):

Jak tworzysz zmienną to jest typu int? Zmień na double

Właśńie nie wiem jak zadeklarować tą tablicę. Jak dałem

Dim TypA As String
Dim TypB As String
Dim DlugoscA As Double
Dim DlugoscB As Double

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

To mi wywala błąd "Invalid qualifier"

Jak nie deklaruję zmiennych to działa ale sie nie odejmuje (no bo pewnie myśli, że to text)

Pozdrawiam

To jak zadeklarujesz wartości zanim trafią do comboboxa nie ma dużego znaczenia, gdyż on zwraca tekst. W takim razie powinieneś przekonwertować wartość przed obliczeniem, np. tak:

Dim a As Double
Dim b As Double

a = CDbl(Me.ComboBox1.Value)
b = CDbl(Me.ComboBox2.Value)

TextBox1.Value = a - b

Dzięki, pomogło. Dodatkowo moim błędem było wpisanie do tablicy wartości 1.5 zamiast 1,5. Nawet przy deklaracji zmiennej double pokazywał błąd. Teraz juz działa poprawnie.

Dzięki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0