2017-10-13 2 views
0

Ich habe 2 Makro. Eine für den Fortschrittsbalken und die andere ist der Hauptprozess. Der Hauptprozess besteht aus 4 Teilprozess innen.Fortschrittsbalken in Excel, rufen Sie ein anderes Makro

Was ich tun möchte, ist die Fortschrittsbalken Erhöhung von 25% für jeden Prozess.

Ich habe den Fortschrittsbalken Makro wie unten erstellt:

Sub code() ' ' Macro1 Macro ' ' Keyboard Shortcut: Ctrl+p 'Sub code() 

    UserForm1.Show 

End Sub 

Sub progress(pctCompl As Single) 

    UserForm1.Text.Caption = pctCompl * 25 & "% Completed" 

    UserForm1.Bar.Width = pctCompl * 50 
    DoEvents 

End Sub 

Sub code_real() 

    Dim i As Integer, j As Integer, pctCompl As Single 

    Sheet1.Cells.Clear 

    For i = 1 To 4 

     For j = 1 To 10000 

      Cells(i, 1).Value = j 

     Next j 

     pctCompl = i 

     progress pctCompl 

    Next i 

End Sub 

Meine Frage ist, wie kann ich Hauptprozess Makro während das Makro für Fortschrittsbalken aufrufen läuft? Ich habe gehört, dass nur 1 Makro gleichzeitig ausgeführt werden kann.

Antwort

0

Kurze Antwort, Sie nicht. Sie führen code_real aus - diese Routine ruft dann den Fortschritt auf. Einfache Analogie ist, dass Sie nur einen Code-Thread ausführen können, aber dieser Thread kann seine Aufmerksamkeit von einem Sub-Code auf einen anderen übertragen, wenn er innerhalb des Codes angewiesen wird. So fließt der Prozess code_real nach unten, bis es auf der Linie trifft

progress pctCompl 

Es geht dann um die Fortschritte, bis er End Sub im Gang erreicht, wenn es dann wieder in der nächsten Zeile real_comp (nächst i)

Wenn Wenn Sie F8 im VB-Editor verwenden, können Sie den Fortschritt zeilenweise verfolgen und dem Thread folgen.

Verwandte Themen