Frage : Wie ich tue, pausieren ein laufendes programmieren in VBA

In einem Excel-Arbeitsblatt sagen, dass ich eine Spalte benennen lasse Befehlszähler und eine andere Spalte die Funktion hat, die sie benennen sollte. Ich habe ein userform verursacht, wie veranschaulicht im Bild. Den Befehlszähler eintragen, den Sie Ihr Programm bis laufen lassen wünschen. Z.B. wenn Sie Befehlszähler als 20 eintragen und Durchlauf anklicken, läuft das Programm von 1 bis 20. Jedoch wenn es mitten in dem Laufen war und Sie an „Pause“ klicken, sollte das Programm zu laufen stoppen. Wie kann ich dies tun? Wie nehme ich nach dem Betätigen von t wieder auf, das er Knopf wieder aufnimmt? Jede mögliche Hilfe würde viel geschätzt. Thanks.
Attachments:

Antwort : Wie ich tue, pausieren ein laufendes programmieren in VBA

Ist hier eine sehr grundlegende Version von, was Sie benötigen. Eine Form mit drei dem Befehlsknöpfe cmdStart haben, cmdPause und cmdResume, eine area per informazioni textbox1 und ein Aufkleber label1.

Ich habe alle Linien des Codes kommentiert, so hoffnungsvoll, das Sie sehen können, was los ist:

Der Aufkleber ist dort, also können Sie Ihren Kostenzähler (und mich sehen benutzen ihn, um den CTR-Wert zu konservieren, wenn Sie pausiert werden).

Er benötigt prüfen, ob die area per informazioni wirklich einen zugelassenen Wert, bevor Sie beginnen, ich würde setzen dieses unter den Startknopf und benennen nur das Stufensprungprogramm hält, wenn der Wert ein gutes ist.

Auf Prüfung er, wenn Sie gerade ihn Sie laufen lassen lassen werden, muss einen Wert verwenden etwas wie 20000 oder Sie in der Lage ist nicht zu pausieren schnell genug.


Wahl ausdrücklich
Runstatus verdunkeln, wie Boolesch ', ob die Schleife laufen kann oder nicht. die Form, die so alle Verfahren waagerecht ausgerichtet ist, kann sie sehen
Privates VorcmdPause_Click ()
   runstatus = falsch 'stellte den Status ein, also stoppt die Schleife
Enden-Unterseeboot
Privates VorcmdResume_Click ()
   Stufensprung CLng (Label1.Caption) 'Wiederanlauf die Zählung using den konservierten Wert des Kostenzählers
Enden-Unterseeboot
Privates VorcmdStart_Click ()
   Anfang der Stufensprunges 1 'die Zählung von 1
Enden-Unterseeboot
Private Vorstufensprung (CTR als lang)
runstatus = zutreffend 'stellen sicher, dass die Schleife laufen kann
Tun, während runstatus = und CTR CTR <� Val="">    = CTR + 1 'Stufensprung der Kostenzähler ausrichten
   Label1.Caption = CTR 'gaben den Gegenwert, using den Aufkleberuntertitel als Speicher des gegenwärtigen Wertes aus
   DoEvents 'so der Aufkleber kann seinen Untertitel aktualisieren, und erlauben, dass der Pausenknopf betätigt wird
Schleife 'betreten die Schleife wieder, wenn die Schleifenzustände noch zutreffend sind
Enden-Unterseeboot

Es tut mir leid dauerte ich so lang, um an Sie zurück zu gelangen, aber, wenn Sie mehr Erklärung bitte benötigen, bitte.

Weitere Lösungen  
 
programming4us programming4us