Kopioi VBA-moduuli - Excel-vinkkejä

Sisällysluettelo

Michelle kirjoittaa:

Olemme kehittäneet Excel-sovelluksen, joka luo ainutlaatuisen Excel-työkirjan jaettavaksi kaikille 54 välittäjälle. Minun on lisättävä useita VBA-makroja jokaiseen 54 Excel-työkirjaan, jotka jaetaan välittäjille. Kuinka voin kopioida VBA-moduulin alkuperäisestä Excel-työkirjasta jokaiseen uuteen Excel-työkirjaan?

Tämä on hieno kysymys, Michelle. Sheets () -sovelluksen käyttö on helppoa. Kopioi-komento, jolla kopioidaan laskentataulukko uuteen työkirjaan, mutta moduulin kopioiminen uuteen työkirjaan ei ole yhtä helppoa. Ratkaisu käsittää moduulin viennin kerran ja sen tuomisen sitten 54 välittäjän työkirjaan niiden valmistuttua. Tässä on osa koodistasi ratkaisun kanssa.

' 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 ja VBE.ActiveProject.VBComponents… Tuontikomennot huolehtivat makrojen kopioinnista uusiin kirjoihin.

Excel 2002: ssä ja uudemmissa sinun on sallittava makron nimenomaisen koodin lisääminen työkirjaan. Valitse Työkalut, Makro, Suojaus. Napsauta 2. välilehteä: Luotetut julkaisijat. Valitse vasemmassa alakulmassa Luota Visual Basic -projektiin. Siirry Excel 2007: ssä Siirry Office-kuvakkeeseen, Excel-asetukset, Luottamuskeskus, Luottamuskeskuksen asetukset, Makroasetukset ja valitse VBA-projektiobjektimallin luottamus.

Varoitus

Komennot, jotka viedään ja tuodaan moduuleista, sekä komennot uusien makrojen kirjoittamiseksi olemassa olevaan työkirjaan tunnetaan yhdessä nimellä Visual Basic Extensibility tai VBE. Jos työkirjasi käyttää mitä tahansa VBE-komentoja, on suuri mahdollisuus, että virustentorjuntaohjelmat merkitsevät työkirjan. Tämä on väärä positiivinen. Väitetyn viruksen nimessä on melkein aina "heuristinen" nimi. Tämä tarkoittaa, että skanneri näkee DLL-puhelut, jotka näyttävät epäilyttäviltä, ​​mutta jotka eivät välttämättä vastaa mitään tunnettuja viruksia. Voit yleensä kirjoittaa virustorjuntaohjelmiston valmistajalle ja hakea, että Excel-työkirjasi on luettelossa, kun olet selittänyt, mitä teet ja miksi se on hyvä asia.

Mielenkiintoisia artikkeleita...