Kopiraj modul VBA - Nasveti za Excel

Kazalo

Michelle piše:

Razvili smo Excelovo aplikacijo, ki ustvari edinstven Excelov delovni zvezek za distribucijo vsakemu od 54 posrednikov. V vsako od 54 Excelovih delovnih zvezkov, ki se razdelijo posrednikom, moram vključiti več makrov VBA. Kako lahko kopiram modul VBA iz prvotnega Excelovega delovnega zvezka v vsak nov Excelov delovni zvezek?

To je odlično vprašanje, Michelle. Uporaba Sheets (). Ukaz Copy je enostaven za kopiranje delovnega lista v nov delovni zvezek, vendar ni tako enostavno kopiranje modula v nov delovni zvezek. Rešitev vključuje izvoz modula enkrat in nato njegovo uvažanje v vsakega od 54 delovnih zvezkov posrednikov, ko so dokončani. Tu je del vaše kode z rešitvijo.

' 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 in VBE.ActiveProject.VBComponents … Ukazi za uvoz poskrbijo za kopiranje makrov v nove knjige.

V Excelu 2002 in novejših morate izrecno dovoliti makrom dodajanje kode v delovni zvezek. Pojdite na Orodja, Makro, Varnost. Kliknite 2. zavihek: Trusted Publishers. V spodnjem levem kotu izberite Zaupaj dostop do projekta Visual Basic. V Excelu 2007 pojdite na Office Icon, Excel Options, Trust Center, Trust Center Settings, Macro Settings in izberite Zaupajte dostop do objektnega modela projekta VBA.

Previdno

Ukazi za izvoz in uvoz modulov ter ukazi za vnos novih makrov v obstoječi delovni zvezek so skupaj znani kot Visual Basic Extensibility ali VBE. Če vaš delovni zvezek uporablja kateri koli ukaz VBE, obstaja velika verjetnost, da ga bodo optični bralniki označili. To je lažno pozitivno. Ime domnevnega virusa ima v imenu skoraj vedno "hevristiko". To pomeni, da optični bralnik vidi klice DLL, ki se zdijo sumljivi, vendar se nujno ne ujemajo z nobenim znanim virusom. Običajno lahko pišete proizvajalcu protivirusne programske opreme in se prijavite, da bo vaš Excelov delovni zvezek na belem seznamu, potem ko boste razložili, kaj počnete in zakaj je to dobro narediti.

Zanimive Članki...