Avatar billede simon_lassen Nybegynder
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
Avatar billede ocp Nybegynder
27. november 2002 - 12:30 #1
Do While StartCounter < SlutCounter?
Avatar billede jelzin101 Praktikant
27. november 2002 - 12:33 #2
du har byttet rundt på startcounter og slutcounter :)

prøv at skrive :
Do While StartCounter >= SlutCounter

istedet.
Avatar billede ocp Nybegynder
27. november 2002 - 12:35 #3
Det vil få loopet til at køre uendeligt....
Avatar billede jelzin101 Praktikant
27. november 2002 - 12:36 #4
mig der sover ;)
Avatar billede martin_moth Mester
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)
Avatar billede ocp Nybegynder
27. november 2002 - 12:48 #6
KIG LIGE PÅ DET *JEG* SKREV.
Avatar billede ocp Nybegynder
27. november 2002 - 12:48 #7
Sorry, Martin. Jeg er lige hurtig nok på aftrækkeren ;-)
Avatar billede simon_lassen Nybegynder
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??
Avatar billede jelzin101 Praktikant
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.)
Avatar billede jelzin101 Praktikant
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.
Avatar billede ocp Nybegynder
27. november 2002 - 13:02 #11
Personligt foretrækker jeg:

While StartCounter <= SlutCounter
...
Wend
Avatar billede martin_moth Mester
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
Avatar billede simon_lassen Nybegynder
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.
Avatar billede jelzin101 Praktikant
27. november 2002 - 13:16 #14
ah oki ;)
Avatar billede simon_lassen Nybegynder
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
Avatar billede martin_moth Mester
27. november 2002 - 15:15 #16
Takker :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