VBA-Modul kopieren - Excel-Tipps

Inhaltsverzeichnis

Michelle schreibt:

Wir haben eine Excel-Anwendung entwickelt, die eine eindeutige Excel-Arbeitsmappe zur Verteilung an jeden der 54 Broker generiert. Ich muss mehrere VBA-Makros in jede der 54 Excel-Arbeitsmappen aufnehmen, die an die Broker verteilt werden. Wie kann ich ein VBA-Modul aus der ursprünglichen Excel-Arbeitsmappe in jede neue Excel-Arbeitsmappe kopieren?

Das ist eine großartige Frage, Michelle. Es ist einfach, den Befehl Sheets (). Copy zu verwenden, um ein Arbeitsblatt in eine neue Arbeitsmappe zu kopieren, aber es ist nicht so einfach, ein Modul in die neue Arbeitsmappe zu kopieren. Die Lösung besteht darin, das Modul einmal zu exportieren und es dann nach Abschluss in jede Ihrer 54 Broker-Arbeitsmappen zu importieren. Hier ist ein Teil Ihres Codes mit der Lösung.

' Delete any old stray copies of the module1 On Error Resume Next Kill ("C:MrXL1.bas") On Error GoTo 0 ' Export Module 1 ActiveWorkbook.VBProject.VBComponents("module1").Export ("c:MrXL1.bas") For x = 1 to 54 ThisBroker = Sheets("BrokerList").range("A" & x).value '… customization of plan omited for brevity Sheets(Array("Menu", "Plan")).Copy NBName = ActiveWorkbook.Name ' new book name ' Import Module 1 to this new book Application.VBE.ActiveVBProject.VBComponents.Import ("c:MrXL1.bas") ActiveWorkbook.SaveAs Filename:=ThisBroker ActiveWorkbook.Close Next x Kill ("C:MrXl1.bas")

Die Befehle VBE.ActiveProject.VBComponents.Export und VBE.ActiveProject.VBComponents… Import sorgen dafür, dass die Makros in die neuen Bücher kopiert werden.

In Excel 2002 und höher müssen Sie einem Makro explizit erlauben, einer Arbeitsmappe Code hinzuzufügen. Gehen Sie zu Extras, Makro, Sicherheit. Klicken Sie auf die zweite Registerkarte: Vertrauenswürdige Herausgeber. Wählen Sie unten links Vertrauenswürdiger Zugriff auf Visual Basic-Projekt. Wechseln Sie in Excel 2007 zu Office-Symbol, Excel-Optionen, Vertrauensstellungscenter, Vertrauensstellungscenter-Einstellungen, Makroeinstellungen und wählen Sie Vertrauenswürdiger Zugriff auf das VBA-Projektobjektmodell.

Vorsicht

Die Befehle zum Exportieren und Importieren von Modulen sowie die Befehle zum Eingeben neuer Makros in eine vorhandene Arbeitsmappe werden zusammen als Visual Basic Extensibility oder VBE bezeichnet. Wenn Ihre Arbeitsmappe VBE-Befehle verwendet, besteht eine hohe Wahrscheinlichkeit, dass die Arbeitsmappe von Virenscannern gekennzeichnet wird. Dies ist falsch positiv. Der Name des angeblichen Virus hat fast immer "heuristisch" im Namen. Dies bedeutet, dass der Scanner DLL-Aufrufe sieht, die verdächtig erscheinen, aber nicht unbedingt mit bekannten Viren übereinstimmen. Normalerweise können Sie an den Hersteller der Antivirensoftware schreiben und beantragen, dass Ihre Excel-Arbeitsmappe auf die weiße Liste gesetzt wird, nachdem Sie erklärt haben, was Sie tun und warum dies eine gute Sache ist.

Interessante Beiträge...