Kopijuoti VBA modulį - „Excel“ patarimai

Turinys

Michelle rašo:

Mes sukūrėme „Excel“ programą, kuri sukuria unikalią „Excel“ darbaknygę, skirtą paskirstyti kiekvienam iš 54 brokerių. Aš turiu įtraukti kelias VBA makrokomandas į kiekvieną iš 54 „Excel“ darbaknygių, kurios platinamos brokeriams. Kaip galiu nukopijuoti VBA modulį iš originalios „Excel“ darbaknygės į kiekvieną naują „Excel“ darbaknygę?

Tai puikus klausimas, Michelle. Paprasta naudoti „Sheets“ (). „Copy“ komanda nukopijuoja darbalapį į naują darbaknygę, tačiau ne taip paprasta nukopijuoti modulį į naują darbaknygę. Sprendimas apima modulio eksportavimą vieną kartą ir tada importavimą į kiekvieną iš 54 brokerio darbaknygių, kai jie yra užpildyti. Čia yra jūsų kodo dalis su sprendimu.

' 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 ir VBE.ActiveProject.VBComponents … Importavimo komandos rūpinasi, kad makrokopijos būtų nukopijuotos į naujas knygas.

„Excel 2002“ ir naujesnėse versijose turite aiškiai leisti makrokomandai pridėti kodą prie darbaknygės. Eikite į „Tools“, „Macro“, „Security“. Spustelėkite 2 skirtuką: Patikimi leidėjai. Apačioje kairėje pasirinkite Patikima prieiga prie „Visual Basic Project“. Programoje „Excel 2007“ eikite į „Office“ piktogramą, „Excel“ parinktis, Patikėjimo centrą, Patikimumo centro parametrus, Makrokomandos parametrus ir pasirinkite Patikima prieiga prie VBA projekto objekto modelio.

Atsargiai

Komandos eksportuoti ir importuoti modulius, taip pat komandos įvesti naujas makrokomandas į esamą darbaknygę bendrai vadinamos „Visual Basic Extensibility“ arba VBE. Jei jūsų darbaknygėje naudojamos bet kokios VBE komandos, didelė tikimybė, kad darbaknygę pažymės virusų skaitytuvai. Tai klaidingai teigiama. Tariamo viruso pavadinime beveik visada yra „euristinis“ vardas. Tai reiškia, kad skaitytuvas mato DLL skambučius, kurie atrodo įtartini, tačiau nebūtinai atitinka visus žinomus virusus. Paprastai galite parašyti antivirusinės programinės įrangos gamintojui ir kreiptis, kad jūsų „Excel“ darbaknygė būtų įtraukta į baltą sąrašą, paaiškinus, ką tai darote ir kodėl tai yra gera.

Įdomios straipsniai...