Kopiering Regneark koden automatisk

August 17  by Eliza

Tim bemerker riktig at en bruker kan høyreklikke på et regneark fanen, og velg Vis kode for å åpne en VBA kodebrev for regnearket. Han har kode skrevet som automatisk manipulerer celler, kolonner og rader. Denne koden må være tilgjengelig på alle regneark i en arbeidsbok, selv om brukeren legger til nye regneark. Tim lurer på om det er en måte, ved hjelp av VBA, for å ha koden for ett regneark automatisk kopiert til et nytt regneark i arbeidsboken.

Det er noen måter du kan nærme seg dette problemet. En måte-og kanskje den enkleste måten-er å fjerne makroer fra regnearket kode ark og flytte dem til Thisworkbook modulen. Regnearket kodearket er det du ser når du høyreklikker et regneark kategorien. Kode i at ark ment å håndtere hendelser som oppstår i regnearket og bare i regnearket. Hvis du flytter koden til Thisworkbook modul, deretter hendelser kan fortsatt bli håndtert, men disse hendelsene gjelder for alle regnearkene i arbeidsboken.

For eksempel, når du høyreklikker på et regneark fanen og se på koden vinduet, er du i utgangspunktet arbeider i Worksheet_SelectionChange hendelsen. Hvis du ønsket å flytte denne koden til Thisworkbook-modulen, kan du plassere den i Workbook_SheetChange hendelsen.

Dersom en slik "nivå endring" av koden din ikke vil fungere for noen grunn, så en annen tilnærming er å lage en mal regneark i arbeidsboken. Gi det et navn som "MyMaster", og sørg for at den inneholder all koden som du ønsker å legge til dine nyopprettede regneark. Du kan også skjule dette regnearket, hvis ønskelig, slik at det ikke distrahere brukerne. Deretter plasserer følgende makro inn i Thisworkbook modul:

Private Sub Workbook_NewSheet (ByVal Sh Som Object)
Dim tmpName As String

tmpName = Sh.Name
. Sheets ("MyMaster") kopi før: = Sheets (Sh.Name)
Application.DisplayAlerts = False
Ark (Sh.Name) .Delete
Application.DisplayAlerts = True
Sheets ("MyMaster (2)"). Name = tmpName
End Sub

Denne koden er utløst hver gang et nytt regneark legges til arbeidsboken. Den ser på navnet på den nylig lagt regneark (som vil være noe sånt som "Sheet4") og lagrer det navnet i en midlertidig variabel. Koden deretter kopierer MyMaster regneark i arbeidsboken (som også kopierer makroer i regnearket), sletter regneark som opprinnelig ble opprettet, og deretter endrer navn den nye MyMaster kopi til å ha samme navn som det opprinnelige regnearket.

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (7880) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Kopiere Regneark koden automatisk.