Wenn Sie ein Add-In erstellt haben, das Ihre benutzerdefinierten Excel-Funktionen enthält, haben Sie möglicherweise festgestellt, dass die Funktionen zwar in einem Excel-Arbeitsblatt einwandfrei funktionieren, Sie sie jedoch nicht in Ihren VBA-Prozeduren in anderen Arbeitsmappen verwenden können. Es ist, als ob der Visual Basic-Editor dies nicht kann sehen Sie. Nun, das ist, weil es nicht kann! Dieser Artikel erklärt, wie Sie das beheben können.
Überlegen Sie zunächst, ob Sie das wirklich wollen. Add-Ins dienen in erster Linie dazu, Ihren Arbeitsmappen zusätzliche Funktionen hinzuzufügen. Wenn Sie ein Excel-Add-In laden, steht dessen Funktionalität sofort für alle Ihre Arbeitsmappen zur Verfügung. Wenn Sie eine VBA-Prozedur erstellen, die von einer benutzerdefinierten Funktion abhängt, die in einer anderen Arbeitsmappe enthalten ist, müsste diese andere Arbeitsmappe immer geöffnet sein, wenn Sie ihre Funktion verwenden möchten. Das gleiche gilt für eine benutzerdefinierte Funktion in einem Add-In. Wenn das Add-In geladen ist, ist das in Ordnung, aber angenommen, Sie senden Ihre Arbeitsmappe an eine andere Person oder verteilen sie an Ihre Arbeitsgruppe. Denken Sie daran, auch das Add-In zu verteilen. Es ist möglicherweise einfacher, eine Kopie der Funktion in den Arbeitsmappencode einzufügen, damit Ihre Prozeduren direkten Zugriff darauf haben (möglicherweise müssen Sie sie zu einem Private Funktion oder seinen Namen ändern, um Namenskonflikte zu vermeiden).
Ich sage nicht, tu es nicht. Sie müssen nur zuerst darüber nachdenken, und wenn Sie sicher sind, dass das Add-In verfügbar ist, fahren Sie fort. Hier ist wie…
Wann tritt das Problem auf?
Ich schreibe eine Prozedur für eines meiner Arbeitsbücher. In meinem Verfahren möchte ich die Leerzeichen entfernen Funktion, die ich vor einiger Zeit erstellt und in meinem gespeichert habe Martins Funktionen Add-In, das derzeit in meiner Excel-Kopie installiert ist. Aber wenn ich versuche, mein Verfahren auszuführen, erhalte ich eine Fehlermeldung.
Der Visual Basic-Editor verhält sich, als ob die Funktion nicht vorhanden wäre, aber ich weiß, dass dies der Fall ist, und ich kann es sehen, wenn ich mir den Code in meinem Add-In ansehe. Tatsächlich funktioniert der Code einwandfrei, wenn ich ihn in meinem Add-In ausführe.
Ich benötige den Visual Basic Editor, um in der Lage zu sein sehen die Funktionen in meinem Add-In aus dem Codemodul von a unterschiedlich Arbeitsmappe.
Geben Sie Ihrem Add-In einen VBA-Projektnamen
Jedes Arbeitsbuch hat eine VBA-Projektname. Es heißt VBAProjekt. Sie können diesen Namen ändern, wenn Sie möchten, aber normalerweise stört es mich nicht, denn normalerweise spielt es keine Rolle.
Haben Sie sich jemals gefragt, warum alle Arbeitsmappen im Projekt-Explorer Bereich des Visual Basic Editors heißen "VBAProjekt"? Wenn Sie eines der Add-Ins von Microsoft installiert haben, sehen Sie, dass es einen anderen Namen hat. Die Microsoft-Entwickler haben ihre Analyse ToolPak Add-In für den VBA-Projektnamen "funcres".
Als erstes müssen Sie Ihrem Add-In einen eindeutigen VBA-Projektnamen geben. Dies liegt daran, dass Sie im nächsten Schritt mit diesem Namen darauf verweisen und wenn mehrere mit demselben Namen vorhanden sind, weiß der Visual Basic-Editor nicht, welchen er verwenden soll.
In dem Projekt-Explorer Wählen Sie den Namen Ihres Add-Ins aus. Wenn es noch nicht geöffnet ist, zeigen Sie die des Visual Basic-Editors an Eigenschaftenfenster. Sie werden sehen, dass es nur eine Eigenschaft gibt, die Name. Geben Sie einen anderen Namen ein und drücken Sie Eintreten. Sie müssen die üblichen Namensregeln für VBA befolgen (d. h. keine unzulässigen Zeichen und keine Leerzeichen). Sie werden sehen, dass der Name sofort im Projekt-Explorer.
Speichern Sie nun die Änderungen an Ihrem Add-In. Stellen Sie sicher, dass Ihr Add-In im ausgewählt ist Projekt-Explorer und wähle Datei > Speichern.
Setzen Sie einen Verweis auf das Add-In
In diesem Schritt teilen Sie der Arbeitsmappe, in der Sie die Funktionen Ihres Add-Ins verwenden möchten, mit, dass das Add-In vorhanden ist. Du machst das durch Eine Referenz setzen zum Add-In. Sie sind vielleicht schon auf diese Technik gestoßen, wenn Sie Excel-Code schreiben wollten, um mit einem anderen Programm zu kommunizieren, wie z Ausblick oder Betreten.
Wenn es bequem ist, starten Sie Excel an dieser Stelle neu. Dies liegt daran, dass Ihr umbenanntes Add-In neu geladen wird und die Liste, die Sie sehen werden, aktualisiert wird. Wenn es nicht bequem ist, machen Sie sich keine Mühe… lesen Sie den nächsten Absatz und entscheiden Sie, was Sie tun möchten.
Öffnen Sie ein Codemodul in der Arbeitsmappe, in dem Sie die Funktionen des Add-Ins verwenden möchten, und gehen Sie dann zu Werkzeuge > Referenzen die öffnen Verweise Dialog, in dem Sie eine Liste aller Bibliotheken und anderer Objekte (wie Add-Ins) sehen, auf die Sie eine Referenz setzen können. Wenn Sie Excel neu gestartet haben, wurde diese Liste aktualisiert und Sie können den Projektnamen finden, den Sie im letzten Schritt Ihrem Add-In gegeben haben. Setzen Sie ein Häkchen in das Kästchen neben dem Namen und klicken Sie auf OK Taste.
Wenn Sie Excel nicht neu gestartet haben, müssen Sie Ihre Add-In-Datei finden, indem Sie auf . klicken Durchsuche Knopf auf dem Verweise Dialog. Dies öffnet die Füge Referenz hinzu Fenster. Ändere das Dateien des Types: Abschnitt zu Microsoft Excel-Dateien (*.xls;*.xla) Navigieren Sie dann zu dem Ordner, in dem das Add-In gespeichert ist.
Wählen Sie Ihr Add-In aus und klicken Sie auf Offen. Dadurch wird Ihr Add-In zur Liste hinzugefügt, in der Sie es auswählen und auf klicken können OK.
HINWEIS: Sie müssen diese beiden Verfahren nicht durchführen! Wählen Sie eine oder eine andere aus, je nachdem, ob Sie Excel neu gestartet haben, nachdem Sie den VBA-Projektnamen Ihres Add-Ins geändert haben.
Jetzt können Sie die Funktionen des Add-Ins in jedem Modul der Arbeitsmappe verwenden, in dem Sie die Referenz setzen, und sie werden vom Visual Basic-Editor erkannt…
Wenn du dir das ansiehst Projekt-Explorer Sie werden sehen, dass eine Referenz auf die Arbeitsmappe angewendet wurde…
Denken Sie daran, dass das Hinzufügen eines Verweises nur für die Arbeitsmappe gilt, für die Sie dieses Verfahren durchgeführt haben. Sie müssen dies für jede andere Arbeitsmappe tun, in der Sie die Funktionen Ihres Add-Ins verwenden möchten.
Über das Verteilen Ihrer Dateien
Wenn Sie einen Verweis auf ein Add-In hinzufügen, wird dieser Link zum Add-In in die Datei "fest verdrahtet". Wenn Sie die Datei auf einen anderen Computer verschieben oder an Ihre Kollegen verteilen, erwartet die Arbeitsmappe, dass dasselbe Add-In an derselben Stelle auf deren Computern vorzufinden ist. Auch wenn das Add-In vom Computer verschoben oder gelöscht wird, kann die Arbeitsmappe es nicht finden und Ihr Code funktioniert nicht.
Einige Leute befürworten, dass sich die Datei und das zugehörige Add-In immer im selben Ordner befinden sollten, um die dadurch möglicherweise verursachten Probleme zu vermeiden. Sie können die Referenz natürlich erneut setzen, um das Problem zu beheben.
Berücksichtigen Sie diese Faktoren und Sie werden keine Probleme haben.