Ich schreibe ein Makro auf Knopf klicken. Auf dieser Schaltfläche klicken, habe ich drei Funktionen nacheinander auszuführen.Excel VBA: Funktionen nicht synchron ausgeführt
-Code ist:
Sub submit()
ActiveWorkbook.Save
Call RUnCode
Call copy_paste_sheet
Call cumulative_percent
End Sub
-Code für RunCode ist:
Private Sub RUnCode()
Dim pyPrgm As String, pyScript As String
pyPrgm = "python "
pyScript = "C:\Users\Kishan\Desktop\script.py"
Call Shell(pyPrgm & pyScript, vbMinimizedNoFocus)
End Sub
Funktion RunCode ein Python-Skript über die Befehlszeile ausgeführt wird. Es dauert einige Zeit zu laufen, und ich brauche Daten aus Python-Skript für copy_paste_sheet und kumulative_percent Funktion (Beide Funktionen sind einfache Excel-Blatt-Manipulationen).
Aber das Problem ist: Bevor der RUnCode beendet ist, laufen zwei andere Funktionen, was zur Verarbeitung der falschen Daten führt.
Können Sie mir dabei helfen. Danke im Voraus.
Blick in Warte Befehle in VBA. Ich glaube, es gibt eine Möglichkeit, den Code warten zu lassen, bis das Skript abgeschlossen ist, bevor der nächste Teil ausgeführt wird. – RGA
Können Sie den Code in der 'RunCode'-Subroutine veröffentlichen? –
Überprüfen Sie auch mit 'WshShell' https://msdn.microsoft.com/en-us/library/aew9yb99 und http://stackoverflow.com/questions/8902022/wait-for-shell-to-finish-then- format-cells –