Avatar billede kavlar Novice
04. juni 2009 - 11:39 Der er 2 kommentarer

Select Case koblet med en For sætning

Jeg sidder med et regneark, og kunne godt tænke mig at lave en macro, der udfører en bestemt handling, alt efter hvad en specifik variable har.

Jeg tænkte på at bruge en Select Case sætning.

Select Case Var
  Case 0 To 10
      C = Range("C1")
  Case 11 To 17
      C = Range("C2")
  Case Else
      C = Range("C3")
End Select

Her kommer så udfordringen.

Jeg har alle intervallerne indtastet i et ark og kunne godt tænke mig, at min Select Case automatisk fandt intervallerne.
Her tænkte jeg så på at bruge en For-sætning noget lignende...

Antal_Intervaller = Range("A:B").Find(what:="*", after:=[A1], searchorder:=xlByRows, searchdirection:=xlPrevious).Row

Sheets("TEST").Select
Antal_Intervallser = Range("A:B").Find(what:="*", after:=[A1], searchorder:=xlByRows, searchdirection:=xlPrevious).Row
       
Var = 15

Select Case Var
    For i = 1 To 5
        a = Cells(i, 1)
        b = Cells(i, 2)
        Case a To b
            C = Cells(i, 3)
    Next i
    Case Else
        C = "FEJL"
End Select

Range("E1") = C

Det er så her mine evner ikke rækker længere (endnu). For jeg får desværre en fejl
Men hvordan gør jeg så?
Avatar billede tjacob Juniormester
05. juni 2009 - 10:14 #1
Du kan ikke lave kode inden i Select Case, som ikke er under en Case. -Derfor fejlen.

Du kan helt droppe Select Case, og nøjes med For-loopet:

Her antager jeg at Var kun kan antage én af værdierne (Hopper ud ved match):

For i = 1 To 5
    If Var >= Cells(i,1) And Var <= Cells(i,2) Then
        C = Cells(i,3) 
        Exit For
    End If
Next i

Efterfølgende tester du om C har fået en ny værdi, ellers sættes den til "Fejl".
Avatar billede kavlar Novice
08. juni 2009 - 08:40 #2
Tak Tjacob, Jeg har ikke lige testet det, men umiddelbart kan jeg godt følge dit forslag og tror det vil virke.
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