27. november 2002 - 12:25
Der er
15 kommentarer og 1 løsning
Problemer med et loop
Det skal først lige siges at jeg stadigvæk jeg lidt grøn når det gælder vb. Jeg har dette loop. Mit problem er at dette loop ikke stopper når "StartCounter" blive lige så stor som "SlutCounter" Hvad gør jeg galt? Do While StartCounter <= SlutCounter 'MsgBox ("StartCounter er: ") & StartCounter 'MsgBox ("SlutCounter er: ") & SlutCounter Dim wsNytRegneark As Worksheet Worksheets("Timeseddel").Range("C3:R53").Copy Set wsNytRegneark = Worksheets.Add wsNytRegneark.Name = Format(StartCounter) ' Range("C3:R53").Select ' ActiveSheet.Paste StartCounter = StartCounter + 1 Loop
Annonceindlæg fra Computerworld it-jobbank
27. november 2002 - 12:30
#1
Do While StartCounter < SlutCounter?
27. november 2002 - 12:33
#2
du har byttet rundt på startcounter og slutcounter :) prøv at skrive : Do While StartCounter >= SlutCounter istedet.
27. november 2002 - 12:35
#3
Det vil få loopet til at køre uendeligt....
27. november 2002 - 12:36
#4
mig der sover ;)
27. november 2002 - 12:39
#5
jelzin101 > Der er ikke byttet om på noget som helst. Det er Startcounter der forøges ved hvert loop, og derfor skal der stå Do While StartCounter < SlutCounter , som ocp rigtigt siger Hvis der står Do While StartCounter <= SlutCounter kører løkken en gang mere, idet den også vil køre når Startcounter = slutcounter. Altsammen forudsat, at startcounter er mindre end slutcounter, når løkken køres ;o)
27. november 2002 - 12:48
#6
KIG LIGE PÅ DET *JEG* SKREV.
27. november 2002 - 12:48
#7
Sorry, Martin. Jeg er lige hurtig nok på aftrækkeren ;-)
27. november 2002 - 13:00
#8
til martin_moth Det er også meningen at det skal køre når to to er =. Men hvorfor stopper loppet ikke??
27. november 2002 - 13:00
#9
Private Sub rec(n As Integer) Dim wsNytRegneark As Worksheet If n = 0 Then Exit Sub Worksheets("Timeseddel").Range("C3:R53").Copy Set wsNytRegneark = Worksheets.Add wsNytRegneark.Name = Format(StartCounter) ' Range("C3:R53").Select ' ActiveSheet.Paste rec (n - 1) End Sub og så kald den med rec(n) 'hvor n er antallet af gange du vil have funktionen udført. (i dette her tilfælde er metoden bedre da du så kan nøjes med at have 1 tællevariabel, (og du jo ikke aktivt bruger dens inkrementerende værdi til ret meget.)
27. november 2002 - 13:01
#10
det skal dog siges at du ikke bør prøve med <0 da det vil få den til at gå i uendelig løkke.
27. november 2002 - 13:02
#11
Personligt foretrækker jeg: While StartCounter <= SlutCounter ... Wend
27. november 2002 - 13:07
#12
Loopet stopper også når StartCounter > SlutCounter! Dim StartCounter As Integer Dim SlutCounter As Integer StartCounter = 1 SlutCounter = 5 Do While StartCounter <= SlutCounter MsgBox "StartCounter er: " & StartCounter & _ " SlutCounter er: " & SlutCounter StartCounter = StartCounter + 1 Loop Ovenstående loop - der er magen til dit - stopper når StartCounter er større end 5, og kører altså præcis 5 gange. Prøv lige at kikke på hvilke værdier Startcounter og Slutcounter har, hvis du mener loopet ikke stopper (det gør det) PS: Jeg går ud fra at både StartCounter og SlutCounter er dim'mede som integers
27. november 2002 - 13:14
#13
til jelzin101 Det ser også fint ud. Med det er ikke et bestemt antal gang jeg skal køre løkken. Lidt forklaring. Jeg har lave en inputbox hvorfra jeg får en startdato. Ud fra denne start dato finder jeg et uge nummer. Det sammen gør jeg med en slutdato, som blive til en slut uge. Hvis nu start ugen blev 34 og slut ugen 40. Skal jeg bruge mit loop til at oprette nogle ark som hedder 34, 35, 36 etc. Håber det gav lidt indblik.
27. november 2002 - 13:16
#14
ah oki ;)
27. november 2002 - 13:37
#15
Det var hvis det man klader for en begynder fejl... Jeg havde ikke skrevet as integer til mine veriabler. Tak til alle.. point til martin_moth. p.g.a. PS: Jeg går ud fra at både StartCounter og SlutCounter er dim'mede som integers
27. november 2002 - 15:15
#16
Takker :o)
Kurser inden for grundlæggende programmering