Копіювати модуль VBA - Поради Excel

Зміст

Мішель пише:

Ми розробили програму Excel, яка створює унікальну книгу Excel для розповсюдження кожному з 54 посередників. Мені потрібно включити кілька макросів VBA до кожної з 54 книг Excel, які розподіляються посередникам. Як я можу скопіювати модуль VBA з оригінальної книги Excel у кожну нову книгу Excel?

Це чудове запитання, Мішель. Користуватися Sheets (). Копіювати команду для копіювання робочого аркуша до нової книги, але не так просто скопіювати модуль до нової книги. Рішення передбачає експортування модуля один раз, а потім його імпортування до кожної з 54 книжок брокера по мірі їх заповнення. Ось частина вашого коду з рішенням.

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

VBE.ActiveProject.VBComponents.Export та VBE.ActiveProject.VBComponents … Команди імпорту подбають про те, щоб макроси були скопійовані в нові книги.

У Excel 2002 та новіших версіях потрібно чітко дозволити макросу додавати код до книги. Перейдіть до Інструменти, Макрос, Безпека. Клацніть на 2-й вкладці: Довірені видавці. У нижньому лівому куті виберіть Довірчий доступ до проекту Visual Basic. У програмі Excel 2007 перейдіть до Значка Office, Параметри Excel, Центру довіри, Налаштування Центру довіри, Налаштування макросів і виберіть Довіряти доступ до об'єктної моделі проекту VBA.

Обережно

Команди для експорту та імпорту модулів, а також команди для введення нових макросів у існуючій книзі спільно відомі як Visual Basic Extensibility або VBE. Якщо ваша книга використовує будь-які команди VBE, існує велика ймовірність того, що книга буде позначена антивірусними сканерами. Це помилковий позитив. Назва передбачуваного вірусу майже завжди має в назві "евристичність". Це означає, що сканер бачить дзвінки DLL, які здаються підозрілими, але не обов’язково відповідають будь-яким відомим вірусам. Зазвичай ви можете звернутися до виробника антивірусного програмного забезпечення та подати заявку на отримання білого списку книги Excel, пояснивши, що ви робите, і чому це добре робити.

Цікаві статті...