2017-06-20 1 views
-1

Ich habe ein VBA-Skript, das Informationen aus riesigen Textdateien extrahiert und eine Menge Datenmanipulation und Berechnungen an den extrahierten Informationen durchführt. Ich habe ungefähr 1000 Dateien und jede dauert eine Stunde bis zum Ende.VBA: Stapeljobs zwischen mehreren Computern koordinieren

Ich möchte das Skript auf so vielen Computern (unter anderem ec2-Instanzen) wie möglich ausführen, um die Zeit für die Fertigstellung des Jobs zu reduzieren. Aber wie koordiniere ich die Arbeit?

Ich habe zwei Möglichkeiten ausprobiert: Ich habe eine Dropbox als Netzwerklaufwerk mit einer txt-Datei mit der aktuellen letzten Jobnummer Thart VBA-Zugriff eingerichtet, starten Sie den nächsten Job und aktualisieren Sie die Zahl, aber es ist offensichtlich zu viel Abstand zwischen einem Das Aktualisieren einer Datei auf einem Computer wird während des gesamten Rests aktualisiert, um praktisch zu sein. Die zweite war, einen einfachen "privaten" Schalterservice online zu finden, der für jeden Besuch aktualisiert wurde, so dass Han auf die Seite zugreifen, die Nummer lesen und die Seite die Nummer für den nächsten Besuch von einem anderen Computer aktualisieren würde. Aber ich habe keinen solchen Dienst gefunden.

Irgendwelche Vorschläge zur Koordinierung solcher Aufgaben zwischen verschiedenen Computern in VBA?

+0

Ich schätze alle Antworten, aber das sagte, wir alle kennen die Einschränkungen von Skripten wie VBA im Vergleich zu Programmiersprachen, aber manchmal müssen Sie verwenden, was Sie haben, und deshalb habe ich dies mit Excel-VBA markiert. Daher schätze ich besonders die Antworten, die darauf hinweisen, wie kleine Informationen zwischen Instanzen von Excel auf verschiedenen Computern in Echtzeit ausgetauscht werden, und weniger Antworten, die mein Skript von Grund auf neu schreiben möchten – user2523167

Antwort

-3

Zunächst einmal, wenn Sie eine geeignete Programmiersprache, zum Beispiel C# für die einfache parallele Verarbeitung verwenden können.

Wenn Sie VBA als zuerst verwenden müssen, optimieren Sie zuerst Ihren Code. Können Sie uns den Code zeigen?

Bearbeiten: Wenn Sie müssen, als Sie könnten Folgendes tun. Zuerst benötigen Sie eine Art von Dateiserver, um alle Textdateien in einem Ordner zu speichern.

Dann im Makro, foreach jede .txt-Datei im Ordner, versuchen, die erste im exklusiven Modus zu öffnen, wenn die Datei geöffnet werden kann, dann ("Ihren Code" nach dem Code ist die Datei anderswo verschieben) Nächste .txt-Datei.

Verwandte Themen