Skopiuj moduł VBA - porady dotyczące programu Excel

Spisie treści

Michelle pisze:

Opracowaliśmy aplikację Excel, która generuje unikalny skoroszyt Excel do dystrybucji do każdego z 54 brokerów. Muszę dołączyć kilka makr VBA do każdego z 54 skoroszytów programu Excel, które są dystrybuowane do brokerów. Jak mogę skopiować moduł VBA z oryginalnego skoroszytu programu Excel do każdego nowego skoroszytu programu Excel?

To świetne pytanie, Michelle. Użycie polecenia Arkusze (). Kopiuj, aby skopiować arkusz do nowego skoroszytu, jest łatwe, ale nie jest tak łatwo skopiować moduł do nowego skoroszytu. Rozwiązanie polega na jednorazowym wyeksportowaniu modułu, a następnie zaimportowaniu go do każdego z 54 skoroszytów brokera po ich ukończeniu. Oto część twojego kodu z rozwiązaniem.

' 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")

Polecenia VBE.ActiveProject.VBComponents.Export i VBE.ActiveProject.VBComponents… Import zapewniają skopiowanie makr do nowych książek.

W programie Excel 2002 i nowszych wersjach musisz jawnie zezwolić makrowi na dodawanie kodu do skoroszytu. Idź do Narzędzia, Makro, Bezpieczeństwo. Kliknij drugą zakładkę: Zaufani wydawcy. W lewym dolnym rogu wybierz opcję Ufaj dostępowi do projektu Visual Basic. W programie Excel 2007 przejdź do ikony pakietu Office, opcji programu Excel, centrum zaufania, ustawień Centrum zaufania, ustawień makr i wybierz opcję Ufaj dostępowi do modelu obiektów projektu VBA.

Uwaga

Polecenia do eksportowania i importowania modułów, a także polecenia do wpisywania nowych makr w istniejącym skoroszycie są zbiorczo nazywane Visual Basic Extensibility lub VBE. Jeśli skoroszyt używa jakichkolwiek poleceń VBE, istnieje duża szansa, że ​​skoroszyt zostanie oznaczony przez skanery antywirusowe. To jest fałszywie pozytywny wynik. Nazwa domniemanego wirusa prawie zawsze ma w nazwie słowo „heurystyczny”. Oznacza to, że skaner widzi wywołania DLL, które wydają się podejrzane, ale niekoniecznie pasują do żadnych znanych wirusów. Zwykle możesz napisać do producenta oprogramowania antywirusowego i złożyć wniosek o umieszczenie skoroszytu programu Excel na białej liście po wyjaśnieniu, co robisz i dlaczego warto to zrobić.

Interesujące artykuły...