Kopirajte VBA modul - Excel savjeti

Sadržaj

Michelle piše:

Razvili smo Excel aplikaciju koja generira jedinstvenu Excel radnu knjigu za distribuciju svakom od 54 brokera. Moram uključiti nekoliko VBA makronaredbi u svaku od 54 Excel radne knjige koje se distribuiraju posrednicima. Kako mogu kopirati VBA modul iz izvorne Excelove radne knjige u svaku novu Excel radnu knjigu?

Ovo je sjajno pitanje, Michelle. Jednostavno je koristiti Sheets (). Naredba Copy za kopiranje radnog lista u novu radnu knjigu, ali nije tako lako kopirati modul u novu radnu knjigu. Rješenje uključuje izvoz modula jednom, a zatim uvoz u svaku od vaše 54 radne knjižice brokera po završetku. Evo dijela vašeg koda s rješenjem.

' 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 i VBE.ActiveProject.VBComponents … Naredbe za uvoz brinu se o kopiranju makronaredbi u nove knjige.

U Excelu 2002 i novijim verzijama morate izričito dopustiti makronaredbi za dodavanje koda u radnu knjigu. Idite na Alati, Makronaredbe, Sigurnost. Kliknite 2. karticu: Pouzdani izdavači. U donjem lijevom kutu odaberite Trust Access to Visual Basic Project. U programu Excel 2007 idite na Office Icon, Excel Options, Trust Center, Trust Center Settings, Macro Settings i odaberite Trust access to the VBA project object model.

Oprez

Naredbe za izvoz i uvoz modula, kao i naredbe za upisivanje novih makronaredbi u postojeću radnu knjigu zajednički su poznate kao Visual Basic Extensibility ili VBE. Ako vaša radna knjiga koristi bilo koje VBE naredbe, velika je vjerojatnost da će skeneri virusa označiti radnu knjigu. Ovo je lažno pozitivno. Ime navodnog virusa gotovo uvijek ima "heurističko" ime. To znači da skener vidi DLL pozive koji se čine sumnjivima, ali koji se ne podudaraju nužno s poznatim virusima. Obično se možete obratiti proizvođaču antivirusnog softvera i prijaviti se da se vaša Excel knjiga nađe na bijelom popisu nakon objašnjenja što to radite i zašto je to dobro učiniti.

Zanimljivi članci...