Vraag : Hoe ik een lopend programma in VBA pauzeer

In een aantekenvel van Excel, zeg ik een kolom genoemd programmateller heb en een andere kolom de functie heeft dat het zou moeten roepen. Ik heb een userform zoals die in het beeld wordt geïllustreerdf gecre�ërd. Ga de programmateller in u uw programma om waarwilt te lanceren aan. Bijvoorbeeld, als u programma tegen als 20 ingaat en Looppas klikt, loopt het programma van 1 tot 20. Nochtans, als het in het midden van het lopen was en u op „Pauze“ klikt, zou het programma moeten ophouden lopend. Hoe kan ik dit doen? Hoe hervat ik op het drukken van t hij knoop hervatten? Om het even welke hulp zou veel gewaardeerd worden. Thanks.

Antwoord : Hoe ik een lopend programma in VBA pauzeer

Hier is een zeer basisversie van wat u nodig hebt. Heb een vorm met bevel drie dichtknoopt cmdStart, cmdPause en cmdResume, een textbox textbox1 en een etiket label1.

Ik heb alle lijnen van de code becommentari�ërd zo hopelijk u kunt zien wat op gaat:

Het etiket is daar zodat kunt u uw teller (en ik gebruik het om de CTRwaarde te bewaren wanneer gepauzeerd) zien.

Het vergt een controle dat textbox eigenlijk een wettelijke waarde alvorens u begint houdt, zou ik dit onder de starter zetten en zou slechts de toenameroutine roepen als de waarde goede is.

Bij het testen van het, als u enkel het gaat laten lopen zult u een waarde moeten gebruiken iets als 20000 of u zult niet kunnen pauzeren snel genoeg.


Expliciete optie
Verduister runstatus Van Boole 'of de lijn kan of niet lopen. het vorm niveau zodat alle procedures kunnen het zien
Privé SubcmdPause_Click ()
   runstatus = Vals 'plaatste de status zodat zal de lijn ophouden
Sub van het eind
Privé SubcmdResume_Click ()
   de toename CLng (Label1.Caption) 'begint het tellen opnieuw gebruikend de bewaarde waarde van de teller
Sub van het eind
Privé SubcmdStart_Click ()
   toename 1 'begint het tellen van 1
Sub van het eind
Privé Subtoename (CTR zoals lang)
runstatus = Waar 'zorgt ervoor de lijn kan lopen
Doe terwijl runstatus = Waar en <� Val="">    CTR- CTR = CTR + 1 'toename de teller
   Label1.Caption = CTR de 'output tegenwaarde, die de etikettitel gebruikt als opslag van de huidige waarde
   DoEvents 'zo het etiket kan zijn titel bijwerken, en de pauzeknoop toelaten om worden gedrukt
De lijn 'geeft de lijn opnieuw in als de lijnvoorwaarden nog waar zijn
Sub van het eind

Ik ben droevig ik zo lang om aan u duurde terug te keren, maar als u any more verklaring gelieve nodig te hebben vraag.

Andere oplossingen  
 
programming4us programming4us