Gå til innhold

[Løst] VBA i Excel hjelp med evig loop


Anbefalte innlegg

Hei

Jeg driver for øyeblikket å lager et regneark som skal brukes som ekstra oppgaver i et kurs som handler om excel. For morroskyld.

 

Dette regnearket skal få folk til å få litt mer innsikt i bruk av hvis funksjonen.

For å få dette til å funke slik som jeg hadde tenkt så har jeg måtte titte litt rundt etter hvordan man lager macroer og slikt, og jeg har klart å lage et "script" som utfører det jeg ønsker.

Private Sub Test_Click()
Range("C9").Value = "=RandBetween(1, 10)"
Range("E7").Value = "=RandBetween(1, 10)"

Do Until Range("C9").Value = 0 Or Range("E7").Value = 0
    Do While Range("C7").Value = "Grønn"
        Range("C9").Value = Range("C9").Value - 1
        Application.Wait (Now + TimeValue("0:00:01"))
    Loop

    Do While Range("F7").Value = "Grønn"
        Range("E7").Value = Range("E7").Value - 1
        Application.Wait (Now + TimeValue("0:00:01"))
    Loop
Loop

End Sub

Problemet mitt er at når jeg klikker på musetasten, eller generelt gjør noe mens dette kjører (hvilket jeg tar i forutsetning at noen av studentene kommer til å gjøre) så setter excel seg fast i en evig loop, hvor tallene starter å telle ned under 0.

 

Er det noen som har noe forslag til hvordan man enkelt kan fikse dette? Evt vet hvordan man kan gjøre slik at makroen kan bli pauset eller stoppet under utførelse, feks ved et vilkårlig tastetrykk eller museklikk?

 

Som sagt er ikke dette helt mitt område, prøvde først dette i dag :p

Endret av Perrern
Lenke til kommentar
Videoannonse
Annonse

Koden kommer til denne loopen, looper og kommer ikke lenger:

 

Do While Range("C7").Value = "Grønn"
Range("C9").Value = Range("C9").Value - 1
Application.Wait (Now + TimeValue("0:00:01"))
Loop

Jeg forstår dessverre ikke hva dette er ment å utrette, så jeg har ingen forsslag til løsning.

 

Beste hislen Harald

Lenke til kommentar

Koden kommer til denne loopen, looper og kommer ikke lenger:

 

Do While Range("C7").Value = "Grønn"

Range("C9").Value = Range("C9").Value - 1

Application.Wait (Now + TimeValue("0:00:01"))

Loop

 

Jeg forstår dessverre ikke hva dette er ment å utrette, så jeg har ingen forsslag til løsning.

 

Beste hislen Harald

Fått svar fra en annen fyr, Virker ikke som om det jeg hadde i tankene egentlig ikke var så veldig lurt, ble veldig fort kluss og kræsjing av programmet, så har gitt det opp.

 

Men takk for hjelpen uansett :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...