Eli minulla on listbox, jossa on alekkain numeroita. Luuppaan listiä läpi ja if lausekkeella katson, lisätäänkö luku toiseen vai vähennetäänkö se siitä. Nyt kuitenkin aloituksessa on joku väärin, sillä ensimmäinen rivi jää laskuista pois kokonaan ja vika varmaan on syntaksissa:
For i = 0 To List1.ListCount - 1 ' jos otan -1 pois, niin ei itse yhtenlaskua ei tapahtu lainkaan
Eli alekkain on vaikka:
1
2
2
2
3
Ja ne pitäisi laskea yhteen, mutta tulos ei olekaan 10 vaan 9.
Tulokseksi saan 10 jos laitan ensimmäiselle riville nolla ja muut luvut sen jälkeen, mutta tämä ei liene ainoa tapa toimia?
list1.additem "1" list1.additem "2" list1.additem "2" list1.additem "2" list1.additem "3" For i = 0 To List1.ListCount - 1 tulos = tulos + Int(List1.List(i)) Next i MsgBox tulos
Tuolla minä saan ainaskin tulokseksi kymmenen.
Juu, toi ylempi antaa tuloksen 10, mutta tämä vaan 9.. Jossain skipataan rivin 0 yli..
List1.AddItem "1" List1.AddItem "+" List1.AddItem "2" List1.AddItem "+" List1.AddItem "2" List1.AddItem "+" List1.AddItem "2" List1.AddItem "+" List1.AddItem "3" Dim Summa As Double Dim Vmerkki As String For i = 0 To List1.ListCount - 1 If List1.List(i) = "+" Then Vmerkki = "+" End If If List1.List(i) = "-" Then Vmerkki = "-" End If If List1.List(i) <> "+" And List1.List(i) <> "-" Then If Vmerkki = "-" Then Summa = Summa - List1.List(i) End If End If If List1.List(i) <> "+" And List1.List(i) <> "-" Then If Vmerkki = "+" Then Summa = Summa + List1.List(i) End If End If Next i Text1.Text = Summa
Koodisi imee sukkaa, koska ensimmäistä arvoa ("1") tarkistettaessa ei ole mitään Vmerkkiä asetettu, eli sitä ei lisätä Summaan tai poisteta Summasta.
If IsNumeric(List1.List(i)) Then If Vmerkki = "-" Then Summa = Summa - List1.List(i) ElseIf Vmerkki = "+" Then Summa = Summa + List1.List(i) Else Summa = List1.List(i) End If End If
Niimpä, oppimattomuus aiheuttaa typerehtimistä... Kiitos, nyt toimii!
Aihe on jo aika vanha, joten et voi enää vastata siihen.