Копирайте VBA модул - Съвети за Excel

Съдържание

Мишел пише:

Разработихме приложение на Excel, което генерира уникална работна книга на Excel за разпространение до всеки от 54 брокера. Трябва да включа няколко макроса на VBA във всяка от 54-те работни книги на Excel, които се разпространяват до брокерите. Как мога да копирам VBA модул от оригиналната работна книга на Excel във всяка нова работна книга на Excel?

Това е страхотен въпрос, Мишел. Лесно е да използвате Sheets (). Командата Copy, за да копирате работен лист в нова работна книга, но не е толкова лесно да копирате модул в новата работна книга. Решението включва експортиране на модула веднъж и след това го импортиране във всяка от 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 и по-нови версии трябва изрично да разрешите на макрос да добавя код към работна книга. Отидете на Tools, Macro, Security. Кликнете върху втория раздел: Доверени издатели. В долния ляв ъгъл изберете Trust Access to Visual Basic Project. В Excel 2007 отидете на Office Icon, Excel Options, Trust Center, Trust Center Settings, Macro Settings и изберете Trust access to the VBA project object model.

Внимание

Командите за експортиране и импортиране на модули, както и командите за въвеждане на нови макроси в съществуваща работна книга са общо известни като Visual Basic Extensibility или VBE. Ако вашата работна книга използва някакви команди VBE, има голяма вероятност работната книга да бъде маркирана от вирусни скенери. Това е фалшиво положително. Името на предполагаемия вирус почти винаги има "евристично" в името. Това означава, че скенерът вижда DLL повиквания, които изглеждат подозрителни, но не е задължително да съответстват на известни вируси. Обикновено можете да пишете на производителя на антивирусния софтуер и да кандидатствате, за да включите работната книга на Excel в белия списък, след като обясните какво правите и защо е добре да направите това.

Интересни статии...