Excel VBA-kodning: Arbejde med et kodevindue

Efterhånden som du bliver dygtig til Excel VBA, bruger du meget tid på at arbejde i kodevinduer. Makroer, som du optager, gemmes i et modul, og du kan skrive Excel VBA-kode direkte i et VBA-modul.

Minimering og maksimering af VBA-kodevinduer

Hvis du har flere projekter åbne, kan VBE'en have masser af kodevinduer på et givet tidspunkt.

Excel VBA-kodning: Arbejde med et kodevindue

Overbelastning af kodevinduer er ikke et kønt syn.

Kodevinduer minder meget om projektmappevinduer i Excel. Du kan minimere dem, maksimere dem, ændre størrelsen på dem, skjule dem, omarrangere dem og så videre. De fleste mennesker finder det meget nemmere at maksimere kodevinduet, som de arbejder på. Hvis du gør det, kan du se mere kode og forhindre dig i at blive distraheret.

For at maksimere et kodevindue skal du klikke på knappen Maksimer på dets titellinje (lige ved siden af ​​X'et). Eller bare dobbeltklik på dens titellinje for at maksimere den. For at gendanne et kodevindue til dets oprindelige størrelse skal du klikke på knappen Gendan. Når et vindue er maksimeret, er dets titellinje ikke synlig, så du finder knappen Gendan under VBE-titellinjen.

Nogle gange vil du måske have to eller flere kodevinduer synlige. For eksempel vil du måske sammenligne koden i to moduler eller kopiere kode fra et modul til et andet. Du kan arrangere vinduerne manuelt eller vælge Vindue → Fliser vandret eller Vindue → Fliser lodret for at arrangere dem automatisk.

Du kan hurtigt skifte mellem kodevinduer ved at trykke på Ctrl+F6. Hvis du gentager denne tastekombination, fortsætter du med at cykle gennem alle de åbne kodevinduer. Ved at trykke på Ctrl+Shift+F6 går du gennem vinduerne i omvendt rækkefølge. (For mere information, tjek disse Excel VBA-tastaturgenveje .)

Minimering af et kodevindue får det af vejen. Du kan også klikke på vinduets Luk-knap (som viser X) på et kodevindues titellinje for at lukke vinduet. (Hvis du lukker et vindue, skjules det bare; du mister ikke noget.) For at åbne det igen skal du blot dobbeltklikke på det relevante objekt i projektvinduet. I øvrigt lyder det sværere at arbejde med disse kodevinduer, end det i virkeligheden er.

Oprettelse af et VBA-modul

Generelt kan et Excel VBA-modul indeholde tre typer kode:

  • Erklæringer: En eller flere informationserklæringer, som du afgiver til VBA. For eksempel kan du erklære datatypen for variabler, du planlægger at bruge, eller indstille nogle andre moduldækkende muligheder. Erklæringer er som udgangspunkt husholdningserklæringer. De bliver faktisk ikke henrettet.
  • Underprocedurer: Et sæt programmeringsinstruktioner, der, når de udføres, udfører en handling.
  • Funktionsprocedurer: Et sæt programmeringsinstruktioner, der returnerer en enkelt værdi (svarende i konceptet til en regnearksfunktion, såsom SUM).

Et enkelt VBA-modul kan gemme et vilkårligt antal underprocedurer, funktionsprocedurer og erklæringer. Nå, der er en grænse - omkring 64.000 tegn pr. modul. Det er usandsynligt, at du overhovedet kommer tæt på at nå grænsen på 64.000 tegn. Men hvis du gjorde det, er løsningen enkel: Indsæt blot et nyt modul.

Hvordan du organiserer et VBA-modul er helt op til dig. Nogle mennesker foretrækker at beholde al deres VBA-kode for en applikation i et enkelt VBA-modul; andre kan lide at opdele koden i flere moduler. Det er et personligt valg, ligesom at arrangere møbler.

Få VBA-kode ind i et modul

Et tomt VBA-modul er som den falske mad, du ser i vinduerne på nogle kinesiske restauranter; det ser godt ud, men det gør ikke meget for dig. Før du kan gøre noget meningsfuldt, skal du have noget VBA-kode i VBA-modulet. Du kan få VBA-kode ind i et VBA-modul på tre måder:

  • Indtast koden direkte.
  • Brug Excel-makrooptageren til at registrere dine handlinger og konvertere disse handlinger til VBA-kode.
  • Kopier koden fra et modul og indsæt den i et andet.

Indtastning af Excel VBA-kode direkte

Nogle gange er den bedste rute den mest direkte. Indtastning af kode involverer … ja, indtastning af koden direkte. Du skriver med andre ord koden ved at bruge dit tastatur. Indtastning og redigering af tekst i et VBA-modul fungerer, som du kunne forvente. Du kan vælge, kopiere, klippe, indsætte og gøre andre ting til teksten.

Brug tabulatortasten til at indrykke nogle af linjerne for at gøre din kode nemmere at læse. Indrykning er ikke nødvendig, men det er en god vane at tilegne sig. Når du studerer Excel VBA-kodning, vil du forstå, hvorfor det er nyttigt at indrykke kodelinjer.

En enkelt linje med VBA-kode kan være så lang, som du har brug for den. Du vil dog måske bruge linjefortsættelsestegnene til at opdele lange kodelinjer. For at fortsætte en enkelt kodelinje (også kendt som en sætning) fra en linje til den næste, skal du afslutte den første linje med et mellemrum efterfulgt af en understregning (_). Fortsæt derefter udsagnet på næste linje. Og glem ikke pladsen. En understregningsfigur, der ikke er indledt med et mellemrum, vil ikke klare opgaven.

Her er et eksempel på et enkelt udsagn opdelt i tre linjer:

Selection.Sort Key1:=Range("A1"), _
  Order1:=xlAscending, Header:=xlGuess, _
  Orientering:=xlTopToBottom

Denne erklæring ville fungere nøjagtigt på samme måde, hvis den blev indtastet på en enkelt linje (uden linjefortsættelsestegn). Bemærk, at anden og tredje linje i denne erklæring er indrykket. Indrykning er valgfrit, men det hjælper med at tydeliggøre, at disse linjer ikke er separate udsagn.

De hvidbelagte ingeniører, der designede VBE'en, forventede, at folk ville lave fejl. Derfor har VBE flere niveauer af fortryd og fortryd. Hvis du har slettet et udsagn, som du ikke burde have, skal du klikke på Fortryd-knappen på værktøjslinjen (eller trykke på Ctrl+Z), indtil udsagnet dukker op igen. Når du har fortrydet, kan du klikke på Gentag-knappen for at udføre de ændringer, du har fortrydet.

Er du klar til at indtaste en real-live-kode? Prøv følgende trin:

Opret en ny projektmappe i Excel.

Tryk på Alt+F11 for at aktivere VBE.

Klik på den nye projektmappes navn i projektvinduet.

Vælg Indsæt → Modul for at indsætte et VBA-modul i projektet.

Indtast følgende kode i modulet:

Sub Gætnavn()
Msg = "Er dit navn " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
Hvis Ans = vbNo Så MsgBox "Åh, ligeglad."
Hvis Ans = vbYes Så MsgBox "Jeg må være synsk!"
Slut Sub

Placer markøren hvor som helst i den tekst, du har indtastet, og tryk på F5 for at udføre proceduren.

F5 er en genvej til Kør → Kør Sub/UserForm. Hvis du har indtastet koden korrekt, udfører Excel proceduren, og du kan svare på den enkle dialogboks. Teksten i dialogboksen vil være forskellig fra teksten vist her.

Excel VBA-kodning: Arbejde med et kodevindue

Gætnavn-proceduren viser denne dialogboks.

Når du indtaster koden, der er angivet i trin 5, bemærker du måske, at VBE'en foretager nogle justeringer af den tekst, du indtaster. For eksempel, når du har indtastet undersætningen, indsætter VBE automatisk slutningen underudsagn. Og hvis du udelader mellemrummet før eller efter et lighedstegn, indsætter VBE mellemrummet for dig. VBE ændrer også farven og brugen af ​​store bogstaver i noget tekst. Det hele er helt normalt. Det er bare VBE's måde at holde tingene pæne og læsbare.

Hvis du fulgte de foregående trin, skrev du bare en VBA Sub-procedure, også kendt som en makro. Når du trykker på F5, udfører Excel koden og følger instruktionerne. Med andre ord evaluerer Excel hver erklæring og gør, hvad du har bedt den om. (Lad ikke denne nyfundne kraft gå til hovedet.) Du kan udføre denne makro et vilkårligt antal gange - selvom den har en tendens til at miste sin tiltrækningskraft efter et par dusin gange.

For ordens skyld bruger denne simple Excel-makro følgende begreber:

  • Definering af en underprocedure (den første linje)
  • Tildeling af værdier til variabler (Msg og Ans)
  • Sammenkædning (sammenføjning) af en streng (ved hjælp af &-operatoren)
  • Brug af en indbygget VBA-funktion (MsgBox)
  • Brug af indbyggede VBA-konstanter (vbYesNo, vbNo og vbYes)
  • Brug af en If-Then-konstruktion (to gange)
  • Afslutning af en underprocedure (sidste linje)

Brug af Excel VBA makrooptager

En anden måde, du kan få kode ind i et VBA-modul, er ved at registrere dine handlinger ved hjælp af Excel-makrooptageren.

Forresten, der er absolut ingen måde, du kan optage Gætnavn-proceduren vist ovenfor. Du kan kun optage ting, du kan gøre direkte i Excel. Visning af en beskedboks er ikke i Excels normale repertoire. (Det er en VBA-ting.) Makrooptageren er nyttig, men i mange tilfælde skal du sandsynligvis indtaste i det mindste noget kode manuelt.

Her er et trin-for-trin eksempel, der viser, hvordan man optager en makro, der indsætter et nyt regneark og skjuler alle undtagen de første ti rækker og alle undtagen de første ti kolonner. Hvis du vil prøve dette eksempel, skal du starte med en ny, tom Excel-projektmappe og følge disse trin:

Aktiver et regneark i projektmappen.

Ethvert Excel-regneark duer.

Klik på fanen Udvikler, og sørg for, at Brug relative referencer ikke er fremhævet.

Denne makro er optaget ved hjælp af Absolutte referencer.

Vælg Udvikler → Kode → Optag makro, eller klik på ikonet ved siden af ​​Klar-indikatoren i venstre ende af statuslinjen.

Excel viser dialogboksen Optag makro.

Navngiv makroen TenByTen i dialogboksen Optag makro, angiv, at du vil have makroen gemt i denne projektbog, og tryk på Shift+T for genvejstasten.

Makroen kan udføres, når du trykker på Ctrl+Shift+T.

Klik på OK for at starte optagelsen. Excel indsætter automatisk et nyt VBA-modul i projektet, der svarer til den aktive projektmappe.

Fra dette tidspunkt konverterer Excel dine handlinger til VBA-kode. Mens du optager, bliver ikonet i statuslinjen til en lille firkant. Dette er en påmindelse om, at makrooptageren kører. Du kan også klikke på det ikon for at stoppe makrooptageren.

Klik på ikonet Nyt ark til højre for den sidste arkfane.

Excel indsætter et nyt regneark.

Vælg hele kolonne K (den 11. kolonne) og tryk på Ctrl+Shift+højre pil; højreklik derefter på en valgt kolonne, og vælg Skjul i genvejsmenuen.

Excel skjuler alle de valgte kolonner.

Vælg hele række 11 og tryk på Ctrl+Shift+pil ned; højreklik derefter på en hvilken som helst valgt række og vælg Skjul i genvejsmenuen.

Excel skjuler alle de valgte kolonner.

Vælg celle A1.

Vælg Udvikler → Kode → Stop optagelse, eller klik på knappen Stop optagelse på statuslinjen (den lille firkant). Excel stopper med at registrere dine handlinger.

For at se denne nyligt optagede makro skal du trykke på Alt+F11 for at aktivere VBE. Find projektmappens navn i projektvinduet. Du kan se, at projektet har et nyt modul på listen. Navnet på modulet afhænger af, om du havde andre moduler i projektmappen, da du begyndte at optage makroen. Hvis du ikke gjorde det, hedder modulet Module1. Du kan dobbeltklikke på modulet for at se kodevinduet for modulet.

Her er koden genereret af dine handlinger:

Sub TenByTen()
'
' TenByTen Makro
'
' Tastaturgenvej: Ctrl+Shift+T
'
  Sheets.Add After:=ActiveSheet
  Columns("K:K").Vælg
  Range(Udvalg, Valg.End(xlTilHøjre)).Vælg
  Selection.EntireColumn.Hidden = Sand
  Rows("11:11"). Vælg
  Range(Udvalg, Valg.End(xlNed)).Vælg
  Selection.EntireRow.Hidden = Sand
  Range("A1"). Vælg
Slut Sub

For at prøve denne makro skal du aktivere et hvilket som helst regneark og trykke på genvejstasten, som du tildelte i trin 4: Ctrl+Shift+T.

Hvis du ikke har tildelt en genvejstast til makroen, skal du ikke bekymre dig. Sådan viser du en liste over alle tilgængelige makroer og kører den, du ønsker:

Vælg Udvikler → Kode → Makroer. Tastaturfans kan trykke på Alt+F8.

En af disse metoder viser en dialogboks, der viser alle tilgængelige makroer.

Vælg makroen på listen (i dette tilfælde TenByTen).

Klik på knappen Kør.

Excel udfører makroen, og du får et nyt regneark med ti synlige rækker og ti synlige kolonner.

Du kan udføre et vilkårligt antal kommandoer og udføre et vilkårligt antal handlinger, mens makrooptageren kører. Excel oversætter pligtskyldigt dine musehandlinger og tastetryk til VBA-kode.

Og du kan selvfølgelig også redigere makroen, efter du har optaget den. For at teste dine nye færdigheder, prøv at redigere makroen, så den indsætter et regneark med ni synlige rækker og kolonner - perfekt til et Sudoku-puslespil.

Kopiering af VBA-kode

Den sidste metode til at få kode ind i et VBA-modul er at kopiere den fra et andet modul eller fra et andet sted (såsom et websted). For eksempel kan en under- eller funktionsprocedure, som du skriver for et projekt, også være nyttig i et andet projekt. I stedet for at spilde tid på at indtaste koden igen, kan du aktivere modulet og bruge de normale udklipsholder-kopier-og-indsæt-procedurer. (Du er sikkert ret glad for tastaturgenvejene Ctrl+C for at kopiere og Ctrl+V for at indsætte.) Efter at have indsat koden i et VBA-modul, kan du ændre koden, hvis det er nødvendigt.

Du finder i øvrigt masser af VBA-kodeeksempler på nettet. Hvis du gerne vil prøve dem, skal du vælge koden i din browser og trykke på Ctrl+C for at kopiere den. Aktiver derefter et modul og tryk på Ctrl+V for at indsætte det.

Når du kopierer kode fra en hjemmeside, kræver det nogle gange en vis fixering. For eksempel kan citattegn være "smarte citater", og de skal konverteres til simple citationstegn. Og nogle gange går lange linjer rundt. Fejlagtige udsagn er nemme at få øje på i VBE, fordi de vises med rødt.


Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows Microsoft Word åbner filer i skrivebeskyttet tilstand, hvilket gør det umuligt at redigere det? Bare rolig, metoderne er nedenfor

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes fejl ved udskrivning af forkerte Microsoft Word-dokumenter Fejl ved udskrivning af Word-dokumenter med ændrede skrifttyper, rodede afsnit, manglende tekst eller tabt indhold er ret almindelige. Men lad være

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Hvis du har brugt pennen eller highlighteren til at tegne på dine PowerPoint-dias under en præsentation, kan du gemme tegningerne til næste præsentation eller slette dem, så næste gang du viser den, starter du med rene PowerPoint-dias. Følg disse instruktioner for at slette pen- og highlighter-tegninger: Sletning af linjer en ved […]

Indhold af stilbibliotek i SharePoint 2010

Indhold af stilbibliotek i SharePoint 2010

Style-biblioteket indeholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og billeder, der bruges af foruddefinerede mastersider, sidelayouts og kontrolelementer i SharePoint 2010. For at finde CSS-filer i Style-biblioteket på et udgivelsessted: Vælg Site Actions→ View Alt webstedsindhold. Indholdet af webstedet vises. Style-biblioteket ligger i […]

Formater tal i tusinder og millioner i Excel-rapporter

Formater tal i tusinder og millioner i Excel-rapporter

Overvæld ikke dit publikum med gigantiske tal. I Microsoft Excel kan du forbedre læsbarheden af ​​dine dashboards og rapporter ved at formatere dine tal, så de vises i tusinder eller millioner.

Sådan deler og følger du SharePoint-websteder

Sådan deler og følger du SharePoint-websteder

Lær, hvordan du bruger SharePoints sociale netværksværktøjer, der lader enkeltpersoner og grupper kommunikere, samarbejde, dele og forbinde.

Sådan konverteres datoer til julianske formater i Excel

Sådan konverteres datoer til julianske formater i Excel

Julianske datoer bruges ofte i produktionsmiljøer som et tidsstempel og hurtig reference for et batchnummer. Denne type datokodning giver detailhandlere, forbrugere og serviceagenter mulighed for at identificere, hvornår et produkt blev fremstillet, og dermed produktets alder. Julianske datoer bruges også i programmering, militæret og astronomi. Forskellige […]

Sådan opretter du en Access Web App

Sådan opretter du en Access Web App

Du kan oprette en webapp i Access 2016. Så hvad er en webapp overhovedet? Nå, web betyder, at det er online, og app er kun en forkortelse for "applikation". En Custom Web App er en online databaseapplikation, der tilgås fra skyen ved hjælp af en browser. Du bygger og vedligeholder webappen i desktopversionen […]

Hurtig startlinje i SharePoint 2010

Hurtig startlinje i SharePoint 2010

De fleste sider i SharePoint 2010 viser en liste over navigationslinks på linjen Hurtig start langs venstre side af siden. Hurtig startlinjen viser links til fremhævet webstedsindhold såsom lister, biblioteker, websteder og udgivelsessider. Hurtigstartlinjen indeholder to meget vigtige links: Linket Alt webstedsindhold: […]

Hvad betyder Solver-fejlmeddelelserne i Excel?

Hvad betyder Solver-fejlmeddelelserne i Excel?

Ved simple problemer finder Solver i Excel som regel hurtigt de optimale Solver-variableværdier for objektivfunktionen. Men i nogle tilfælde har Solver problemer med at finde de Solver-variableværdier, der optimerer objektivfunktionen. I disse tilfælde viser Solver typisk en meddelelse eller en fejlmeddelelse, der beskriver eller diskuterer det problem, der […]