Bruke arbeidsbokobjekt i Excel VBA (Åpne, Lukk, Lagre, Sett)

I denne opplæringen vil jeg dekke hvordan du arbeider med arbeidsbøker i Excel ved hjelp av VBA.

I Excel er en "arbeidsbok" et objekt som er en del av "arbeidsbøker" -samlingen. I en arbeidsbok har du forskjellige objekter, for eksempel regneark, diagramark, celler og områder, diagramobjekter, figurer, etc.

Med VBA kan du gjøre mange ting med et arbeidsbokobjekt - for eksempel åpne en bestemt arbeidsbok, lagre og lukke arbeidsbøker, opprette nye arbeidsbøker, endre arbeidsbokegenskapene osv.

Så la oss komme i gang.

Alle kodene jeg nevner i denne opplæringen må plasseres i Visual Basic Editor. Gå til delen "Hvor skal du sette VBA -koden" for å vite hvordan den fungerer.

Hvis du er interessert i å lære VBA på den enkle måten, sjekk min Online Excel VBA -opplæring.

Refererer til en arbeidsbok ved hjelp av VBA

Det er forskjellige måter å referere til et arbeidsbokobjekt i VBA. Metoden du velger vil avhenge av hva du vil få gjort. I denne delen vil jeg dekke de forskjellige måtene å referere til en arbeidsbok sammen med noen eksempler på koder.

Bruke arbeidsboknavn

Hvis du har det eksakte navnet på arbeidsboken du vil referere til, kan du bruke navnet i koden.

La oss begynne med et enkelt eksempel.

Hvis du har to arbeidsbøker åpne, og du vil aktivere arbeidsboken med navnet - Eksempler. Xlsx, kan du bruke koden nedenfor:

Sub ActivateWorkbook () Arbeidsbøker ("Eksempler.xlsx"). Aktiver Slutt Sub

Vær oppmerksom på at du må bruke filnavnet sammen med utvidelsen hvis filen er lagret. Hvis det ikke er lagret, kan du bruke navnet uten filtypen.

Hvis du ikke er sikker på hvilket navn du skal bruke, ta hjelp fra Project Explorer.

Hvis du vil aktivere en arbeidsbok og velge en bestemt celle i et regneark i arbeidsboken, må du oppgi hele adressen til cellen (inkludert arbeidsbok og navn på regneark).

Sub ActivateWorkbook () Workbooks ("Exempler.xlsx"). Regneark ("Sheet1"). Aktiver Range ("A1"). Velg End Sub

Koden ovenfor aktiverer først ark1 i arbeidsboka Exempler. Xlsx og velger deretter celle A1 i arket.

Du vil ofte se en kode der det henvises til et regneark eller en celle/område uten å referere til arbeidsboken. Dette skjer når du refererer til regnearket/områdene i den samme arbeidsboken som har koden i den og også er den aktive arbeidsboken. I noen tilfeller må du imidlertid spesifisere arbeidsboken for å sikre at koden fungerer (mer om dette i ThisWorkbook -delen).

Bruke indeksnumre

Du kan også referere til arbeidsbøkene basert på indeksnummeret.

For eksempel, hvis du har tre arbeidsbøker åpne, viser følgende kode deg navnene på de tre arbeidsbøkene i en meldingsboks (en om gangen).

Sub WorkbookName () MsgBox Workbooks (1) .Name MsgBox Workbooks (2) .Name MsgBox Workbooks (3) .Name End Sub Sub

Koden ovenfor bruker MsgBox - som er en funksjon som viser en meldingsboks med den angitte teksten/verdien (som er arbeidsboknavnet i dette tilfellet).

En av problemene jeg ofte har med å bruke indeksnummer med arbeidsbøker, er at du aldri vet hvilken som er den første arbeidsboken og hvilken som er den andre og så videre. For å være sikker, må du kjøre koden som vist ovenfor eller noe lignende for å gå gjennom de åpne arbeidsbøkene og kjenne indeksnummeret deres.

Excel behandler arbeidsboken først for å ha indeksnummeret som 1, og det neste som 2 og så videre.

Til tross for denne ulempen kan bruk av indeksnummer være nyttig. For eksempel, hvis du vil gå gjennom alle de åpne arbeidsbøkene og lagre alle, kan du bruke indeksnumrene. I dette tilfellet, siden du vil at dette skal skje med alle arbeidsbøkene, er du ikke bekymret for deres individuelle indeksnummer.

Koden nedenfor vil gå gjennom alle de åpne arbeidsbøkene og lukke alle unntatt arbeidsboken som har denne VBA -koden.

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks (i) .Name ThisWorkbook.Name Then Workbooks (i). Close End If Next i End Sub

Koden ovenfor teller antall åpne arbeidsbøker og går deretter gjennom alle arbeidsbøkene ved hjelp av For Every -løkken.

Den bruker IF -betingelsen for å kontrollere om navnet på arbeidsboken er det samme som navnet på arbeidsboken der koden kjøres.

Hvis det ikke er en treff, lukker den arbeidsboken og går til den neste.

Vær oppmerksom på at vi har kjørt løkken fra WbCount til 1 med et trinn på -1. Dette gjøres som med hver sløyfe, antall åpne arbeidsbøker synker.

Denne arbeidsboken er detaljert dekket i den senere delen.

Bruke ActiveWorkbook

ActiveWorkbook, som navnet antyder, refererer til arbeidsboken som er aktiv.

Koden nedenfor viser deg navnet på den aktive arbeidsboken.

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name Slutt Sub

Når du bruker VBA til å aktivere en annen arbeidsbok, vil ActiveWorkbook -delen i VBA etter det begynne å referere til den aktiverte arbeidsboken.

Her er et eksempel på dette.

Hvis du har en arbeidsbok aktiv og du setter inn følgende kode i den og kjører den, vil den først vise navnet på arbeidsboken som har koden og deretter navnet på Exempler. Xlsx (som blir aktivert av koden).

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name Workbooks ("Exempler.xlsx"). Aktiver MsgBox ActiveWorkbook.Name Slutt Sub

Vær oppmerksom på at når du oppretter en ny arbeidsbok ved hjelp av VBA, blir den nyopprettede arbeidsboken automatisk den aktive arbeidsboken.

Bruke ThisWorkbook

ThisWorkbook refererer til arbeidsboken der koden utføres.

Hver arbeidsbok ville ha et ThisWorkbook -objekt som en del av den (synlig i Project Explorer).

'ThisWorkbook' kan lagre vanlige makroer (lik de vi legger til moduler) samt hendelsesprosedyrer. En hendelsesprosedyre er noe som utløses basert på en hendelse - for eksempel å dobbeltklikke på en celle, eller lagre en arbeidsbok eller aktivere et regneark.

Enhver hendelsesprosedyre som du lagrer i denne 'ThisWorkbook' vil være tilgjengelig i hele arbeidsboken, sammenlignet med hendelsesnivåhendelser som bare er begrenset til de spesifikke arkene.

For eksempel, hvis du dobbeltklikker på ThisWorkbook-objektet i Project Explorer og kopierer inn koden nedenfor, vil det vise celleadressen når du dobbeltklikker på noen av cellene i hele arbeidsboken.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) MsgBox Target.Address End Sub

Mens ThisWorkbooks hovedrolle er å lagre hendelsesprosedyrer, kan du også bruke den til å referere til arbeidsboken der koden utføres.

Koden nedenfor vil returnere navnet på arbeidsboken der koden utføres.

Sub ThisWorkbookName () MsgBox ThisWorkbook.Name End Sub

Fordelen med å bruke ThisWorkbook (over ActiveWorkbook) er at den vil referere til den samme arbeidsboken (den som har koden i den) i alle tilfellene. Så hvis du bruker en VBA -kode for å legge til en ny arbeidsbok, vil ActiveWorkbook endres, men ThisWorkbook vil fortsatt referere til den som har koden.

Opprette et nytt arbeidsbokobjekt

Følgende kode vil opprette en ny arbeidsbok.

Sub CreateNewWorkbook () Workbooks.Add End Sub

Når du legger til en ny arbeidsbok, blir den den aktive arbeidsboken.

Følgende kode vil legge til en ny arbeidsbok og deretter vise deg navnet på den arbeidsboken (som ville være standard Book1 -type navn).

Sub CreateNewWorkbook () Workbooks.Add MsgBox ActiveWorkbook.Name End Sub

Åpne en arbeidsbok ved hjelp av VBA

Du kan bruke VBA til å åpne en bestemt arbeidsbok når du kjenner filbanen til arbeidsboken.

Koden nedenfor åpner arbeidsboken - Exempler. Xlsx som er i Dokumenter -mappen på systemet mitt.

Sub OpenWorkbook () Workbooks.Open ("C: \ Users \ sumit \ Documents \ Example.xlsx") End Sub

Hvis filen finnes i standardmappen, som er mappen der VBA lagrer nye filer som standard, kan du bare angi arbeidsboknavnet - uten hele banen.

Sub OpenWorkbook () Workbooks.Open ("Eksempler.xlsx") Slutt Sub

Hvis arbeidsboken du prøver å åpne ikke eksisterer, ser du en feil.

For å unngå denne feilen kan du legge til noen få linjer i koden din for først å kontrollere om filen finnes eller ikke, og hvis den eksisterer, kan du prøve å åpne den.

Koden nedenfor vil kontrollere filplasseringen, og hvis den ikke eksisterer, vil den vise en egendefinert melding (ikke feilmeldingen):

Sub OpenWorkbook () If Dir ("C: \ Users \ sumit \ Documents \ Example.xlsx") "" Then Workbooks.Open ("C: \ Users \ sumit \ Documents \ Example.xlsx") Else MsgBox "Filen gjør ikke eksisterer ikke "End If End Sub

Du kan også bruke dialogboksen Åpne til å velge filen du vil åpne.

Sub OpenWorkbook () På feil Gjenoppta Neste Dim FilePath As String FilePath = Application.GetOpenFilename Workbooks.Open (FilePath) End Sub

Koden ovenfor åpner dialogboksen Åpne. Når du velger en fil du vil åpne, tilordner den filbanen til FilePath -variabelen. Workbooks.Open bruker deretter filbanen til å åpne filen.

Hvis brukeren ikke åpner en fil og klikker på Avbryt -knappen, blir FilePath False. For å unngå å få en feil i dette tilfellet, har vi brukt «On Error Resume Next» -erklæringen.

I slekt: Lær alt om feilhåndtering i Excel VBA

Lagre en arbeidsbok

For å lagre den aktive arbeidsboken, bruk koden nedenfor:

Sub SaveWorkbook () ActiveWorkbook.Save End Sub

Denne koden fungerer for arbeidsbøkene som allerede er lagret tidligere. Siden arbeidsboken inneholder makroen ovenfor, mister du makroen når du åpner den neste gang den ikke er lagret som en .xlsm (eller .xls) fil.

Hvis du lagrer arbeidsboken for første gang, viser den deg en melding som vist nedenfor:

Når du sparer for første gang, er det bedre å bruke alternativet ‘Saveas’.

Koden nedenfor vil lagre den aktive arbeidsboken som en .xlsm -fil på standardplasseringen (som er dokumentmappen i systemet mitt).

Sub SaveWorkbook () ActiveWorkbook.SaveAs Filnavn: = "Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Hvis du vil at filen skal lagres på et bestemt sted, må du nevne det i filnavn -verdien. Koden nedenfor lagrer filen på skrivebordet mitt.

Sub SaveWorkbook () ActiveWorkbook.SaveAs filnavn: = "C: \ Users \ sumit \ Desktop \ Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Hvis du vil at brukeren skal få muligheten til å velge plasseringen for å lagre filen, kan du bruke dialogboksen Saveas. Koden nedenfor viser dialogboksen Saveas og lar brukeren velge stedet der filen skal lagres.

Sub SaveWorkbook () Dim FilePath As String FilePath = Application.GetSaveAsFilename ActiveWorkbook.SaveAs Filname: = FilePath & ".xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Vær oppmerksom på at i stedet for å bruke FileFormat: = xlOpenXMLWorkbookMacroEnabled, kan du også bruke FileFormat: = 52, der 52 er koden xlOpenXMLWorkbookMacroEnabled.

Lagre alle åpne arbeidsbøker

Hvis du har mer enn én arbeidsbok åpen og du vil lagre alle arbeidsbøkene, kan du bruke koden nedenfor:

Sub SaveAllWorkbooks () Dim wb As Workbook For Every wb In Workbooks wb.Save Next wb End Sub

Ovennevnte lagrer alle arbeidsbøkene, inkludert de som aldri har blitt lagret. Arbeidsbøkene som ikke har blitt lagret tidligere, vil bli lagret på standardplasseringen.

Hvis du bare vil lagre arbeidsbøkene som tidligere er lagret, kan du bruke koden nedenfor:

Sub SaveAllWorkbooks () Dim wb As Workbook For Every wb In Workbooks If wb.Path "" Then wb.Save End If Next wb End Sub

Lagre og lukke alle arbeidsbøker

Hvis du vil lukke alle arbeidsbøkene, bortsett fra arbeidsboken som har gjeldende kode i den, kan du bruke koden nedenfor:

Sub CloseandSaveWorkbooks () Dim wb som arbeidsbok for hver wb i arbeidsbøker Hvis wb.Name ThisWorkbook.Name Deretter wb.Close SaveChanges: = True End If Next wb End Sub

Koden ovenfor vil lukke alle arbeidsbøkene (unntatt arbeidsboken som har koden - ThisWorkbook). Hvis det er endringer i disse arbeidsbøkene, blir endringene lagret. Hvis det er en arbeidsbok som aldri har blitt lagret, vil den vise dialogboksen Lagre som.

Lagre en kopi av arbeidsboken (med tidsstempel)

Når jeg jobber med komplekse data og dashbord i Excel -arbeidsbøker, lager jeg ofte forskjellige versjoner av arbeidsbøkene mine. Dette er nyttig hvis noe går galt med min nåværende arbeidsbok. Jeg ville i det minste ha en kopi av den lagret med et annet navn (og jeg ville bare miste arbeidet jeg gjorde etter å ha laget en kopi).

Her er VBA -koden som vil lage en kopi av arbeidsboken din og lagre den på det angitte stedet.

Sub CreateaCopyofWorkbook () ThisWorkbook.SaveCopyAs Filnavn: = "C: \ Users \ sumit \ Desktop \ BackupCopy.xlsm" Slutt Sub

Koden ovenfor vil lagre en kopi av arbeidsboken din hver gang du kjører denne makroen.

Selv om dette fungerer bra, ville jeg føle meg mer komfortabel hvis jeg hadde lagret forskjellige kopier hver gang jeg kjører denne koden. Grunnen til at dette er viktig er at hvis jeg gjør en utilsiktet feil og kjører denne makroen, vil det lagre arbeidet med feilene. Og jeg ville ikke ha tilgang til arbeidet før jeg gjorde feilen.

For å håndtere slike situasjoner kan du bruke koden nedenfor som lagrer en ny kopi av verket hver gang du lagrer det. Og det legger også til en dato og tidsstempel som en del av arbeidsboknavnet. Dette kan hjelpe deg med å spore eventuelle feil du gjorde da du aldri mister noen av de tidligere opprettede sikkerhetskopiene.

Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean) ThisWorkbook.SaveCopyAs Filname: = "C: \ Users \ sumit \ Desktop \ BackupCopy" & Format (Now (), "dd-mm-åå-hh-mm-ss -AMPM ") &" .xlsm "End Sub

Koden ovenfor vil opprette en kopi hver gang du kjører denne makroen og legge til et dato/klokkeslettstempel i arbeidsboknavnet.

Lag en ny arbeidsbok for hvert regneark

I noen tilfeller kan det hende du har en arbeidsbok som har flere regneark, og du vil opprette en arbeidsbok for hvert regneark.

Dette kan være tilfelle når du har månedlige/kvartalsvise rapporter i en enkelt arbeidsbok og du vil dele disse i en arbeidsbok for hvert regneark.

Eller hvis du har avdelingsvise rapporter og du vil dele disse opp i individuelle arbeidsbøker, slik at du kan sende disse individuelle arbeidsbøkene til avdelingslederne.

Her er koden som skal opprette en arbeidsbok for hvert regneark, gi den samme navn som regnearket og lagre den i den angitte mappen.

Sub CreateWorkbookforWorksheets () Dim ws As Worksheet Dim wb As Workbook For Every ws In ThisWorkbook.Worksheets Set wb = Workbooks.Add ws.Copy Before: = wb.Sheets (1) Application.DisplayAlerts = False wb.Sheets (2) .Delete Application.DisplayAlerts = True wb.SaveAs "C: \ Users \ sumit \ Desktop \ Test \" & ws.Name & ".xlsx" wb.Close Next ws End Sub

I koden ovenfor har vi brukt to variable 'ws' og 'wb'.

Koden går gjennom hvert regneark (ved hjelp av For Each Next loop) og oppretter en arbeidsbok for den. Den bruker også kopimetoden for regnearkobjektet til å lage en kopi av regnearket i den nye arbeidsboken.

Vær oppmerksom på at jeg har brukt SET -setningen til å tildele varianten ‘wb’ til en ny arbeidsbok som er opprettet av koden.

Du kan bruke denne teknikken til å tilordne et arbeidsbokobjekt til en variabel. Dette dekkes i neste avsnitt.

Tilordne arbeidsbokobjekt til en variabel

I VBA kan du tilordne et objekt til en variabel, og deretter bruke variabelen til å referere til det objektet.

For eksempel, i koden nedenfor, bruker jeg VBA til å legge til en ny arbeidsbok og deretter tilordne den arbeidsboken til variabelen wb. For å gjøre dette må jeg bruke SET -setningen.

Når jeg har tilordnet arbeidsboken til variabelen, blir alle egenskapene til arbeidsboken også gjort tilgjengelig for variabelen.

Sub AssigntoVariable () Dim wb As Workbook Set wb = Workbooks.Add wb.SaveAs Filnavn: = "C: \ Users \ sumit \ Desktop \ Example.xlsx" End Sub

Vær oppmerksom på at det første trinnet i koden er å deklarere 'wb' som en arbeidsboktypevariabel. Dette forteller VBA at denne variabelen kan inneholde arbeidsbokobjektet.

Den neste setningen bruker SET til å tilordne variabelen til den nye arbeidsboken som vi legger til. Når denne oppgaven er utført, kan vi bruke wb -variabelen til å lagre arbeidsboken (eller gjøre noe annet med den).

Sløyfe gjennom åpne arbeidsbøker

Vi har allerede sett noen eksempler på koder ovenfor som brukte looping i koden.

I denne delen vil jeg forklare forskjellige måter å gå gjennom åpne arbeidsbøker ved hjelp av VBA.

Anta at du vil lagre og lukke alle de åpne arbeidsbøkene, bortsett fra den med koden i, så kan du bruke koden nedenfor:

Sub CloseandSaveWorkbooks () Dim wb som arbeidsbok for hver wb i arbeidsbøker Hvis wb.Name ThisWorkbook.Name Deretter wb.Close SaveChanges: = True End If Next wb End Sub

Koden ovenfor bruker sløyfen For hver for å gå gjennom hver arbeidsbok i arbeidsboksamlingen. For å gjøre dette må vi først deklarere 'wb' som arbeidsboktypevariabel.

I hver loop -syklus blir hvert arbeidsboknavn analysert, og hvis det ikke samsvarer med navnet på arbeidsboken som har koden, lukkes det etter at innholdet er lagret.

Det samme kan også oppnås med en annen sløyfe som vist nedenfor:

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks (i) .Name ThisWorkbook.Name Then Workbooks (i). Close SaveChanges: = True End If Next i End Sub

Koden ovenfor bruker For Next -løkken for å lukke alle arbeidsbøkene bortsett fra den som har koden i den. I dette tilfellet trenger vi ikke å deklarere en arbeidsbokvariabel, men i stedet må vi telle det totale antallet åpne arbeidsbøker. Når vi har tellingen, bruker vi For Next -løkken for å gå gjennom hver arbeidsbok. Vi bruker også indeksnummeret til å referere til arbeidsbøkene i dette tilfellet.

Vær oppmerksom på at i koden ovenfor går vi fra WbCount til 1 med trinn -1. Dette er nødvendig som med hver sløyfe, arbeidsboken lukkes og antall arbeidsbøker reduseres med 1.

Feil under arbeid med arbeidsbokobjektet (kjøretidsfeil '9')

En av de vanligste feilene du kan støte på når du arbeider med arbeidsbøker er - Run -time Error ‘9’ - Subscript out of range.

Vanligvis er VBA -feil ikke veldig informative og overlater ofte til deg å finne ut hva som gikk galt.

Her er noen av de mulige årsakene som kan føre til denne feilen:

  • Arbeidsboken du prøver å få tilgang til, finnes ikke. For eksempel, hvis jeg prøver å få tilgang til den femte arbeidsboken ved hjelp av arbeidsbøker (5), og det bare er fire arbeidsbøker åpne, får jeg denne feilen.
  • Hvis du bruker et feil navn for å referere til arbeidsboken. For eksempel, hvis arbeidsboknavnet ditt er Exempler. Xlsx og du bruker Eksempel. Xlsx. så viser den deg denne feilen.
  • Hvis du ikke har lagret en arbeidsbok, og du bruker utvidelsen, får du denne feilen. For eksempel, hvis arbeidsboknavnet ditt er Bok 1, og du bruker navnet Bok1.xlsx uten å lagre det, får du denne feilen.
  • Arbeidsboken du prøver å få tilgang til er lukket.

Få en liste over alle åpne arbeidsbøker

Hvis du vil få en liste over alle de åpne arbeidsbøkene i den gjeldende arbeidsboken (arbeidsboken der du kjører koden), kan du bruke koden nedenfor:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Activate For i = 1 To wbcount Range ("A1"). Offset (i - 1, 0). Verdi = Arbeidsbøker (i) .Name Neste i End Sub

Koden ovenfor legger til et nytt regneark og viser deretter navnet på alle de åpne arbeidsbøkene.

Hvis du også vil få filbanen deres, kan du bruke koden nedenfor:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Activate For i = 1 To wbcount Range ("A1"). Offset (i - 1, 0). Value = Workbooks (i) .Path & "\" & Workbooks (i) .Name Next i End Sub

Åpne den spesifiserte arbeidsboken ved å dobbeltklikke på cellen

Hvis du har en liste over filbaner for Excel-arbeidsbøker, kan du bruke koden nedenfor til å dobbeltklikke på cellen med filbanen, og den åpner arbeidsboken.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Workbooks.Open Target.Value End Sub

Denne koden vil bli plassert i ThisWorkbook -kodevinduet.

Å gjøre dette:

  • Dobbeltklikk på ThisWorkbook -objektet i prosjektutforskeren. Vær oppmerksom på at ThisWorkbook -objektet skal være i arbeidsboken der du vil ha denne funksjonaliteten.
  • Kopier og lim inn koden ovenfor.

Nå, hvis du har den nøyaktige banen til filene du vil åpne, kan du gjøre det ved å dobbeltklikke på filbanen, og VBA ville umiddelbart åpne arbeidsboken.

Hvor å plassere VBA -koden

Lurer du på hvor VBA -koden går i Excel -arbeidsboken din?

Excel har en VBA -backend kalt VBA -redaktøren. Du må kopiere og lime inn koden i VB Editor -modulvinduet.

Her er trinnene for å gjøre dette:

  1. Gå til kategorien Utvikler.
  2. Klikk på Visual Basic -alternativet. Dette vil åpne VB -redaktøren i backend.
  3. I Project Explorer-ruten i VB Editor, høyreklikker du på et hvilket som helst objekt for arbeidsboken der du vil sette inn koden. Hvis du ikke ser Project Explorer, går du til kategorien View og klikker på Project Explorer.
  4. Gå til Sett inn og klikk på Modul. Dette vil sette inn et modulobjekt for arbeidsboken din.
  5. Kopier og lim inn koden i modulvinduet.

Du kan også like følgende Excel VBA -opplæringsprogrammer:

  • Slik spiller du inn en makro i Excel.
  • Opprette en brukerdefinert funksjon i Excel.
  • Hvordan lage og bruke tillegg i Excel.
  • Slik gjenoppretter du makroer ved å plassere den i Personal Macro Workbook.
  • Få listen over filnavn fra en mappe i Excel (med og uten VBA).
  • Hvordan bruke Excel VBA InStr -funksjon (med praktiske eksempler).
  • Slik sorterer du data i Excel ved hjelp av VBA (en trinnvis veiledning).

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave