Avatar billede hebn Nybegynder
13. oktober 2003 - 22:43 Der er 11 kommentarer og
2 løsninger

Select Case med flere konstanter ell. variabler

Hvorfor kan denne kode ikke skelne mellem de to Case's, når der indtastes værdi der kun passer til den ene?

Private Sub CommandButton1_Click()

Select Case Val("Text1.Text")

    Case Is > 0 <= 20
        MsgBox "Funker 0-20"
       
    Case Is > 20 <= 100
        MsgBox "Funker 20-100"
       
    End Select

End Sub
Avatar billede stry Nybegynder
13. oktober 2003 - 22:49 #1
case 1 to 20
case 21 to 100
Avatar billede stry Nybegynder
13. oktober 2003 - 22:51 #2
"case 1 to 20" er sand for alle værdier fra 1-20, begge inklusive.
Avatar billede stry Nybegynder
13. oktober 2003 - 23:01 #3
Du skal også fjerne "-tegnene, så der ser således ud:

Select Case Val(Text1.Text)

    case 1 to 20
        MsgBox "Funker 0-20"
       
    case 21 to 100
        MsgBox "Funker 20-100"
       
    End Select

End Sub

...så virker den :-)
Avatar billede stry Nybegynder
13. oktober 2003 - 23:05 #4
>>hebn
Kan du få det til at virke?
Avatar billede hebn Nybegynder
14. oktober 2003 - 00:30 #5
Hallo.
Som jeg skriver det er værdier over 20 i Case 1 To 20 ikke sand.
20,000001 skal altså ikke være sand i Case 1 To 20, men først i Case 20 To 100.

Hvordan grejer man det.
(Ser mail fra jobbet og går hjem snart).
Avatar billede kabbak Professor
14. oktober 2003 - 00:47 #6
Select Case Val(Text1.Text)
    Case 1 To 20#
        MsgBox "Funker 0-20"
        Case 20.0000000001 To 100
        MsgBox "Funker 20-100"
      End Select
     
     
nb. husk at bruge punktum som decimal i text box
Avatar billede hebn Nybegynder
14. oktober 2003 - 00:58 #7
Det matematiske funker nu.
Indtastning skal ske fra num pad'en.
Hvordan kommer jeg til at bruge dens "," som seperator?

Hvordan grejer man det.
(Ser mail fra jobbet og går hjem snart).
Avatar billede martin_moth Mester
14. oktober 2003 - 07:31 #8
Du kan også gøre sådan her

    Case Is < 0
    Case Is <= 20
        MsgBox "Funker 0-20"
    Case Is <= 100
        MsgBox "Funker 20-100"
    End Select

Den virker også ved 20.0000000000000000000000000000000000000000000000000001 :o)
Avatar billede martin_moth Mester
14. oktober 2003 - 08:36 #9
Det var egentligt et svar, da jeg synes det er en bedre løsning end at bruge "To".
I min løsning vil det mindste tal VB kan håndtere, som er større end 20, ryge over i 20-100 :o)
Avatar billede stry Nybegynder
14. oktober 2003 - 18:32 #10
Du kan bruge Replace til at erstatte komma med punktum.
Så kommer den til at se således ud (bemærk at jeg har brugt Martins case da jeg også synes den er bedre):

Private Sub Command1_Click()
Dim Var As String
Var = Replace(Text1.Text, ",", ".")
Select Case Val(Var)

    Case Is < 0
    Case Is <= 20
        MsgBox "Funker 0-20"
    Case Is <= 100
        MsgBox "Funker 20-100"
    End Select


End Sub
Avatar billede stry Nybegynder
16. oktober 2003 - 18:45 #11
>>hebn wake up !!
Hvad med lidt respons?
Avatar billede hebn Nybegynder
17. oktober 2003 - 12:16 #12
I er godt nok utålmodige, på den anden side er det fedt at vide at der altid sidder kompetente folk klar til at kaste sig over det næste spørgsmål man smider op på skærmen - unanset hvornår man måtte gøre det.

10 point til Martin, da hans svar er matematisk mest rigtigt.
10 point til stry, for komma svaret.
Avatar billede martin_moth Mester
17. oktober 2003 - 12:55 #13
Vi hader bare uafsluttede spørgsmål ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester