Springen naar inhoud

vba excel


  • Log in om te kunnen reageren

#1

Sjaak de Lange

    Sjaak de Lange


  • >25 berichten
  • 85 berichten
  • Ervaren gebruiker

Geplaatst op 17 juni 2014 - 21:42

hallo, ik heb een simpel scriptje wat niet lijkt te werken;

 

Function marge(lengte)

If lengte >= 1 Then
marge = 1
ElseIf lengte >= 1500 Then
marge = 2
ElseIf lengte >= 2000 Then
marge = 3
ElseIf lengte >= 2200 Then
marge = 4
Else
marge = 5
End If
End Function
 

hij lijkt alleen de eerste en de laatste regel uit te voeren, ik roep hem in het werkblad aan met; =marge(c3) lengte vul ik dan  in de cel c3 in, kan iemand zien wat ik fout doe?,  ben net met vba begonnen dus ik denk dat ik iets over het hoofd zie...


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

In physics I trust

    In physics I trust


  • >5k berichten
  • 7384 berichten
  • Moderator

Geplaatst op 17 juni 2014 - 21:52

Als

 

If lengte >= 1 Then

 

Vervuld is, dan wordt

 

marge = 1

 

uitgevoerd.

 

De andere elseif's worden dus niet meer gecheckt, want je komt niet in else, immers de if is al vervuld. Had je er een 'if' van gemaakt, dan had je een geneste structuur, en kan je wel gelijkelijk verfijnen.

 

Eventueel kan je ook eens kijken naar de Case Select functie in VBA.

"C++ : Where friends have access to your private members." — Gavin Russell Baker.

#3

Sjaak de Lange

    Sjaak de Lange


  • >25 berichten
  • 85 berichten
  • Ervaren gebruiker

Geplaatst op 17 juni 2014 - 22:15

Hallo, ja dank maar ook op de tussenliggende range dus bijv lengte 1600, 2100 reageert hij niet, hij zou dan ' het rijtje af moeten lopen'?

#4

physicalattraction

    physicalattraction


  • >1k berichten
  • 3102 berichten
  • Moderator

Geplaatst op 18 juni 2014 - 07:54

Wat bedoel je met "reageert hij niet"? Ik verwacht dat er 1 uitkomt voor elk getal groter dan 1 dat je erin stopt, en 5 voor elk getal kleiner of gelijk aan 1 dat je erin stopt. De uitkomst 2, 3 of 4 kan nooit voorkomen. Is dit ook wat je waarneemt? In de uitleg van In physics I trust kun je lezen waarom dit het verwachte gedrag is.


#5

paac

    paac


  • >250 berichten
  • 271 berichten
  • Ervaren gebruiker

Geplaatst op 18 juni 2014 - 09:09

Hallo, ja dank maar ook op de tussenliggende range dus bijv lengte 1600, 2100 reageert hij niet, hij zou dan ' het rijtje af moeten lopen'?

 

Dat is wat "In physics I trust" ook aangeeft :)

Als je het rijtje afloopt met lengte = 1750, dan begint ie bij de eerste functie
lengte >= 1

Deze voldoet, dus marge = 1 en verder kijkt ie niet.


 

Veranderd door paac, 18 juni 2014 - 09:09

Plan? I don't need a plan, just a goal. The rest will follow on its own.
Clever waste of time: Level 31


#6

Sjaak de Lange

    Sjaak de Lange


  • >25 berichten
  • 85 berichten
  • Ervaren gebruiker

Geplaatst op 18 juni 2014 - 17:53

Ff omdeaaien dus van hoog -> laag, dank!





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures