Копирајте ВБА модул - Екцел савети

Преглед садржаја

Мицхелле пише:

Развили смо Екцел апликацију која генерише јединствену Екцел радну свеску за дистрибуцију сваком од 54 брокера. Морам да укључим неколико ВБА макронаредби у сваку од 54 Екцел радне свеске које се дистрибуирају посредницима. Како могу да копирам ВБА модул из оригиналне Екцел радне свеске у сваку нову Екцел радну свеску?

Ово је сјајно питање, Мицхелле. Лако је користити Схеетс (). Наредба Цопи за копирање радног листа у нову радну свеску, али није тако лако копирати модул у нову радну свеску. Решење укључује извоз модула једном, а затим увоз у сваку од 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")

ВБЕ.АцтивеПројецт.ВБЦомпонентс.Екпорт и ВБЕ.АцтивеПројецт.ВБЦомпонентс … Наредбе за увоз брину се о копирању макронаредби у нове књиге.

У програму Екцел 2002 и новијим верзијама морате изричито дозволити макронаредбама да додају код у радну свеску. Идите на Алатке, Макро, Безбедност. Кликните на другу картицу: Поуздани издавачи. У доњем левом углу одаберите Труст Аццесс то Висуал Басиц Пројецт. У програму Екцел 2007 идите на Оффице Ицон, Екцел Оптионс, Труст Центер, Труст Центер Сеттингс, Мацро Сеттингс и одаберите Труст аццесс то тхе ВБА пројецт објецт модел.

Опрез

Наредбе за извоз и увоз модула, као и наредбе за унос нових макронаредби у постојећу радну свеску, заједнички су познате као Висуал Басиц Ектенсибилити или ВБЕ. Ако ваша радна свеска користи било које ВБЕ наредбе, велика је вероватноћа да ће радну свеску означити вирусни скенери. Ово је лажно позитивно. Име наводног вируса готово увек има „хеуристику“ у називу. То значи да скенер види ДЛЛ позиве који делују сумњиво, али који се не подударају нужно са познатим вирусима. Обично можете да пишете произвођачу антивирусног софтвера и поднесете захтев за добијање беле листе Екцел-а након објашњавања шта то радите и зашто је то добро учинити.

Занимљиви Чланци...