2015-08-13 13 views
7

Ich habe eine Excel 2010-Arbeitsmappe mit mehreren Blättern erstellt. VBA-Code, der verschiedene Datenmanipulationen durchführt, ist in einigen Modulen und auch in einigen Formularen enthalten. Das Arbeitsbuch wird an ein paar Dutzend Personen in verschiedenen Abteilungen verteilt. Sie werden ihr Arbeitsbuch mit eigenen abteilungsspezifischen Daten füllen.Aktualisierten Excel-VBA-Code an mehrere Endbenutzer verteilen

Wenn ich ein Update auf den Code verteilen muss (entweder einen Bugfix oder eine neue Funktion), wie kann das gemacht werden? Ich möchte nicht, dass die Benutzer alle ihre Daten erneut eingeben oder kopieren und in die "neue" Arbeitsmappe einfügen müssen. Ich bin im Wesentlichen auf der Suche nach einer Methode zur Aktualisierung des VBA-Projekts in der vorhandenen Arbeitsmappe.

+3

Schiff des Code als Stand-alone-VBA-Projekt in einem zentral gelegenen (dh auf einem LAN) Arbeitsmappe, die die Daten Arbeitsmappe verknüpfen, um beim Start. Oder konvertieren Sie zu Visual Studio Tools für Office und verwenden Sie Click-Once-Bereitstellung –

+0

Wird sich nur der VBA-Code ändern, oder ändert sich auch die Struktur der Arbeitsmappe (Blattnamen, Spaltenüberschriften, benannte Bereiche usw.)? –

+0

[This] (http://stackoverflow.com/questions/31392299/creating-a-self-install-macro/31393407#31393407) funktioniert nicht mit Formularen, aber es ist Denkanstoß. – findwindow

Antwort

1

Sie müssten die Module und Formulare exportieren und manuell in die vorhandenen Arbeitsmappen importieren. Ich musste dies für einige Projekte tun, an denen ich arbeitete.

Alternativ müssten Sie einen Hilfscode schreiben, um die alten Daten in eine neu veröffentlichte Arbeitsmappe zu importieren, aber dies hängt natürlich davon ab, wie die Daten organisiert sind. Auch dies ist ein anderer Ansatz, den ich für ein anderes Projekt gewählt habe.

Sie können dies auch prozedural tun. Ich habe das für kleine Patches verwendet. http://cpearson.com/excel/vbe.aspx

2

Sie könnten eine zusätzliche Hilfsarbeitsmappe erstellen Help.xlsm, deren Dateiattribute schreibgeschützt sind.

Verschieben Sie alle vba Code, dass Sie in Zukunft ändern müssen könnten, in Help.xlsm

Die Datei, die Sie verteilen dann einen Verweis Hinzufügen muss Help.xlsm

Jetzt in der Zukunft Änderungen vorgenommen werden können zu Help.xlsm und sie sollten in den Dateien des Clients erscheinen.

Oben wird davon ausgegangen, dass alle Ihre Kunden im selben Netzwerk sind, so dass Sie Help.xlsm irgendwo speichern können, die für alle ihre Dateien zugänglich ist.

Dieser Artikel erklärt, es besser als ich: http://www.excelguru.ca/content.php?152-Deploying-Add-ins-in-a-Network-Environment

+0

Ich bin immer noch etwas verwirrt, wie dies zu implementieren ist. Ich bin auch auf den Link gestoßen, den Sie geteilt haben, und es ist genau das, was ich brauche. Ich kann einfach nicht herausfinden, wie man es in meine .xlam (add-in) Datei einbaut. Könnten Sie sich meine bestehende Frage zu diesem Thema [hier] ansehen (http://stackoverflow.com/questions/35583430/how-would-i-implement-this-code-into-my-excel-add-in)) Es würde sehr geschätzt werden. – CaffeinatedCoder

+0

@CaffeinatedCoder Ich benutze kein xlam - ich benutze nur ein xlsm mit dem Attribut 'read-only': Dies bedeutet, dass mehrere Arbeitsmappen einen Verweis darauf haben können. – whytheq

+0

Das ist eine Schande. Ich benutze stattdessen einen xlam, um meinen Code zu schützen. Ich kann einfach nicht herausfinden, wie man das anwendet. – CaffeinatedCoder

Verwandte Themen