Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Loopin lopetus

Tiri [30.03.2011 15:34:40]

#

Moi,

Mulla on tälläinen koodi kun excelissä userform aukeaa:

Private Sub UserForm_Activate()
Label17.Caption = Format(Date)
Do
Label18.Caption = Format(Now, "hh:mm:ss")
DoEvents
Loop
End Sub

Ongelma on se, että kun userform suljetaan, niin sen suoritusta ei kuitenkaan lopeteta.
Eli miten saan tuon loopin loppumaan samalla kun esim painikkeesta painetaan joka sulkee lomakkeen?

Ratkaisu on varmaan ihan yksinkertainen, mutta en ole sitä keksinyt...

Kiitos!

Mod. lisäsi kooditagit.

neau33 [30.03.2011 16:58:47]

#

Moi Tiri!

kokeile oheista viritelmää...

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub UserForm_Activate()

   Static LoopExit As Boolean
   LoopExit = False
   Label17.Caption = Format(Date)

   Do While Not LoopExit
      Label18.Caption = Format(Now, "hh:mm:ss")
      Sleep 250
      DoEvents
   Loop

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   LoopExit = True
End Sub

Tiri [31.03.2011 08:06:53]

#

Kiitän :)

neau33 [31.03.2011 10:25:14]

#

Sorry Tiri!

it still hangs in the previous example...here's the right manner

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private AllowExit As Boolean
'the boolean should be declared in generals
'instead of static inside the procedure...
Private Sub UserForm_Activate()

   AllowExit = False
   Label17.Caption = Format(Date)

   Do While Not AllowExit
      DoEvents
      Label18.Caption = Format(Now, "hh:mm:ss")
      Sleep 250
   Loop

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   AllowExit = True
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta