Questione : Come faccio fa una pausa un corrente programma in VBA

In un manuale di Excel, dire che faccio denominare una colonna contatore di programma e un'altra colonna ha la funzione che dovrebbe denominare. Ho generato un userform come illustrato nell'immagine. Entrare nel contatore di programma che volete il vostro programma fare funzionare fino a. Per esempio, se fornite il contatore di programma come 20 e scattate il funzionamento, il programma si allontana da 1 lavorare a 20. Tuttavia, se fosse nel mezzo del funzionare e scattate sopra “la pausa„, il programma dovrebbe smettere di funzionare. Come posso fare questo? Come riprendo sulla pressatura della t che riprende il tasto? Tutto l'aiuto molto sarebbe apprezzato. Thanks. class= " lastRow del
>Attachments " di nome " del class= del class= " valore " del
il

class= " fileInfo " del
il title= " " di nome di schedario del class= " di userform.JPG il class= (55 KB)  Javascript " del href= " " dei attachmentDetails del class= di (tipo di lima particolari)  
class= " descrizione " del
Userform
target= " _blank " " di http://filedb.experts-exchange.com/incoming/2010/08_w35/339857/userform.JPG " " del href= " del attachmentLink del class= di larghezza dello style= del  Userform„/>
il class= di
del >
class= del

Risposta : Come faccio fa una pausa un corrente programma in VBA

Qui è una versione molto di base di che cosa avete bisogno. Avere una forma con un cmdStart dei tre pulsanti di comando, cmdPause e cmdResume, una casella di testo textbox1 e un'etichetta label1.

Ho commentato tutte le linee del codice così eventualmente che potete vedere che cosa sta accendendo:

L'etichetta è là in modo da potete vederli il vostro contatore (e stanno usandolo per conservare il valore del CTR una volta fatto una pausa).

Ha bisogno di un controllo che la casella di testo realmente tiene un valore legale prima che cominciate, io metterebbe questo sotto il pulsante di avvio e soltanto denominerebbe la procedura di incremento se il valore è buon.

Sulle prove esso, se stiate andando appena lasciarli farlo funzionare dovrà usare un valore qualcosa come 20000 o voi non potrà fare una pausa abbastanza velocemente.


Opzione esplicita
Oscurare il runstatus come booleano 'se il ciclo può funzionare oppure no. la forma livellata così tutte le procedure può vederla
cmdPause_Click secondario riservato ()
   il runstatus = falso 'ha fissato la condizione in modo da il ciclo si arresterà
Sommergibile dell'estremità
cmdResume_Click secondario riservato ()
   nuovo inizio di CLng di incremento (Label1.Caption) 'il conteggio using il valore conservato del contatore
Sommergibile dell'estremità
cmdStart_Click secondario riservato ()
   inizio di incremento 1 'il conteggio da 1
Sommergibile dell'estremità
Incremento secondario riservato (CTR come lungamente)
il runstatus = allineare 'si assicura che il ciclo possa funzionare
Fare mentre il runstatus = allinea e CTR <� Val="">    CTR = CTR + 1 'incremento il contatore
   Label1.Caption = il CTR 'hanno prodotto il controvalore, using il titolo dell'etichetta come deposito del valore corrente
   DoEvents 'così l'etichetta può aggiornare il relativo titolo e permettere che il tasto di pausa sia premuto
Il ciclo 'registra di nuovo il ciclo se gli stati del ciclo sono ancora allineare
Sommergibile dell'estremità

Sono spiacente che ho preso così lungamente per ottenere indietro voi, ma se avete bisogno prego di altra spiegazione chiedere.

Altre soluzioni  
 
programming4us programming4us