Excel VBA Umiddelbart vindue - 5 fantastiske måder at bruge det på!

'Umiddelbart vindue' kan være et nyttigt værktøj at bruge, når du arbejder med VBA i Excel.

Vinduet Umiddelbart giver dig mulighed for hurtigt at gøre ting som:

  • Få oplysninger om Excel -filer (f.eks. Arkantal i en projektmappe eller projektmappens navn)
  • Få oplysninger om Debug.Print hurtigt
  • Kør en kodelinje på få sekunder
  • Kør en makro (eller ring til en funktion)
  • Få oplysninger om variabler (eller indstil værdien eller variablerne)

Selvom du ikke behøver at bruge det umiddelbare vindue til at arbejde med VBA i Excel, kan det gøre dig meget mere effektiv at vide, hvordan du bruger det godt.

I denne vejledning dækker jeg alt det, du har brug for at vide om det umiddelbare vindue, og hvordan du bedst bruger det (forklaret med eksempler).

Lad os komme igang!

Hvad er et øjeblikkeligt vindue i Excel VBA?

Umiddelbart vindue er en del af VB Editor, som du kan bruge til at lave nogle hurtige ting.

For at give dig et eksempel, hvis du har en projektmappe med nogle skjulte regneark, og du hurtigt vil vide antallet af samlede regneark, kan du gøre det på få sekunder med vinduet Umiddelbart.

Umiddelbart vindue gør meget mere (som du vil se senere i denne vejledning). Men lad os til at begynde med bare tænke på det umiddelbare vindue som et værktøj til at hjælpe dig med at fremskynde dit arbejde i Excel VBA.

Hvor finder man det umiddelbare vindue?

Når du åbner Excel VB-Editor, kan du muligvis allerede se det umiddelbare vindue som en del af VB Editor. Og hvis du ikke allerede ser det, kan du nemt få det til at dukke op.

Nedenfor er trinene til at åbne VB Editor og gøre det umiddelbare vindue synligt:

  1. Klik på fanen 'Udvikler' på båndet i Excel (hvis du ikke kan se fanen Udvikler, klik her for at lære, hvordan du får det)
  2. I kodegruppen skal du klikke på 'Visual Basic'. Dette åbner VB Editor
  3. I VB Editor skal du klikke på indstillingen ‘Vis’ i menuen
  4. Klik på Umiddelbart vindue. Dette får det øjeblikkelige vindue til at dukke op i VB Editor.

Hvis du er mere fortrolig med genveje, er der nogle nedenfor for at fremskynde ovenstående trin:

  • Sådan åbnes VB Editor - ALT + F11 (dette fungerer, selvom du ikke har fanen Udvikler på båndet)
  • For at vise det umiddelbare vindue - Kontrol + G (brug denne VB Editor er åben)

Eksempler på brug af øjeblikkeligt vindue i Excel VBA

Nu hvor du ved, hvor du skal finde det umiddelbare vindue, lad os se nogle fantastiske eksempler, hvor du kan bruge det, når du arbejder med Excel VBA.

Få oplysninger om filer/projektmapper

'Umiddelbart vindue' er et sted, hvor du kan stille spørgsmål om projektmapper, og det vil give dig svaret med det samme.

Antag for eksempel, at du har en projektmappe, og du vil vide, hvor mange ark der er i projektmappen, du kan skrive nedenstående kode i det umiddelbare vindue og trykke på enter -tasten.

? ActiveWorkbook.Sheets.Count

Dette vil øjeblikkeligt fortælle dig det samlede antal ark i den aktive projektmappe.

Dette kan være nyttigt, når du har en projektmappe, der har mange ark, og du ikke kan tælle den manuelt (eller ikke vil), eller når du har en projektmappe, hvor der er skjulte ark, og du vil vide det samlede beløb tælle.

Det ? (spørgsmålstegn) skal bruges før forespørgslen, så VBA kan forstå, at du stiller et spørgsmål. Hvis du ikke bruger dette spørgsmålstegn, giver det umiddelbare vindue dig ikke detaljer/svar.

Nu er dette et virkelig simpelt eksempel, hvor Immediate Window giver dig nogle oplysninger og sparer tid.

Nedenfor er nogle flere eksempler:

For at få navnet på den aktive projektmappe

? ActiveWorkbook.Name

For at få navnet på det aktive ark

? Activesheet.Name

For at få stien til projektmappen (adressen, hvor den er gemt)

? ActiveWorkbook.Path

Så hvis du har brug for noget om et objekt (f.eks. Projektmappe, ark, diagrammer, former, område osv.), Kan du bruge det umiddelbare vindue til hurtigt at få disse oplysninger.

Hent Debug.Print -oplysninger

I Excel VBA bruges Debug.Print til at vise værdien af ​​en variabel øjeblikkeligt i det umiddelbare vindue.

For eksempel viser nedenstående kode øjeblikkeligt meddelelsen "Godmorgen" i det umiddelbare vindue.

Sub DisplayMessage () Debug.Print "Good Morning" End Sub

Du kan bruge Debug.Print -linjen i din kode til hurtigt at få nogle data i det umiddelbare vindue eller til at fejlsøge din kode.

For eksempel, hvis du vil have navnene på alle arkene i en projektmappe, kan du bruge nedenstående kode:

Sub GetSheetNames () For hver sh i ActiveWorkbook.Sheets Debug.Print sh.Name Næste sh End Sub

Ovenstående kode går gennem hvert ark i den aktive projektmappe og giver navnet i det umiddelbare vindue.

Debug.Print er en nyttig teknik til fejlfinding af din kode. For eksempel, hvis du kører en sløjfe og vil se, hvor mange gange løkken blev kørt, kan du simpelthen placere en Debug.Print -linje, der simpelthen viser stigende tal, når hver sløjfe kører.

Hvis du bruger Debug.Print for at fejlsøge koden, skal du huske at fjerne den, når du er færdig.

Kør en makro (eller en funktion)

Selvom der er forskellige måder at køre en makro i Excel på, er en af ​​de hurtige måder at bruge det umiddelbare vindue.

For at køre en makro er det eneste du skal gøre at indtaste navnet på makroen i det umiddelbare vindue og trykke på enter -tasten (markøren skal være i slutningen af ​​makronavnet for at dette kan fungere).

Nedenfor er et eksempel, hvor den, så snart du indtaster navnet på makroen i det umiddelbare vindue, kører koden (hvor koden viser meddelelsen "God morgen" i det umiddelbare vindue).

Dette kan være nyttigt, når du har en kode og vil kontrollere, om den fungerer som forventet eller ej. Du kan have en eller flere Debug.Print -linjer i koden og køre makroen fra det umiddelbare vindue.

Det viser øjeblikkeligt værdierne i det umiddelbare vindue, og du kan kontrollere, om alt fungerer fint eller ej.

Du kan også bruge det umiddelbare vindue til også at udføre brugerdefinerede funktioner.

For eksempel i nedenstående eksempel oprettes en funktion for at kontrollere, om et tal er lige eller ulige. Du kan køre denne funktion fra det umiddelbare vindue ved at skrive funktionen med det argument, den tager. Du skal bruge spørgsmålstegnet i dette tilfælde, da du beder det om ikke at returnere en værdi, der er gemt i funktionen.

Udfør en kodelinje (eller flere kodelinjer)

Med øjeblikkeligt vindue kan du også køre en kodelinje (eller flere linjer med koder).

Den bedste del ved dette er, at du blot kan åbne det umiddelbare vindue, køre koden og lukke (i modsætning til en makro, som du skal sætte i et modulvindue og derefter udføre).

En use-case, hvor dette kan være nyttigt, er, når du hurtigt vil vise alle arkene i projektmappen.

Nedenfor er den kode, du kan placere i det umiddelbare vindue for at vise alle arkene i projektmappen. Placer markøren for enden af ​​linjen og så snart du trykker på enter -tasten, vil det skjule alle arkene.

For hvert ark i denne arbejdsbog.Sheets: Sheet.Visible = True: Next Sheet

Bemærk, at selvom dette ligner en enkelt kodelinje, består det af tre dele.

Hver del er adskilt med et: (kolon), der fungerer som et linjeskift. Dette giver dig mulighed for at bruge For Next -løkken i det umiddelbare vindue til at gå gennem hvert ark og ændre den synlige egenskab til TRUE (som viser et skjult ark).

Få variable værdier

Når du begynder at oprette komplekse VBA -koder, skal du stole på variabler for at udføre jobbet.

En variabel er noget, der har en værdi, og denne værdi kan ændre sig, når koden kører. Du kan bruge et øjeblikkeligt vindue til at kontrollere disse variable værdier.

Nedenfor er en simpel kode, der giver summen af ​​de første 10 positive heltal og viser resultatet i det umiddelbare vindue.

Sub AddFirstTenNumbers () Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 Til 10 k = k + i Næste i Debug.Print i, k End Sub

Så snart du kører denne kode, vil du se nedenstående resultat i det umiddelbare vindue. Dette fortæller dig øjeblikkeligt, at koden fungerer fint og giver det forventede resultat.

Hvis det ikke giver de forventede resultater, kan du fejlsøge koden.

Mange mennesker bruger en meddelelsesboks, mens de debugger koden. Selvom det fungerer fint, synes jeg det er lidt påtrængende, da det tager mig til Excel -projektmappen og viser en meddelelsesboks. På den anden side er det meget glattere at bruge øjeblikkelig vindue til fejlfinding og holder mig i selve Visual Basic -editoren.

Bemærk: Hvis du arbejder med en kompleks kode og har flere variabler, som du skal spore, er det bedre at bruge et urvindue. Et urvindue giver dig mulighed for at tilføje en variabel, og så kan du se, hvordan variablen ændres i realtid (eller når du går gennem koden).

Indstil variabel værdi ved fejlfinding

Dette er lidt avanceret brug af vinduet Umiddelbar, men hvis du bruger det, kan det være en enorm tidsbesparelse, når fejlfinding af koden.

Du kan bruge det umiddelbare vindue til at indstille værdien af ​​en variabel, mens du kører koden i fejlretningstilstanden (hvor du angiver et brudpunkt, så koden ikke udføres fuldt ud - men op til en bestemt linje).

For eksempel, hvis du har en sløjfe, der kører 10 gange, og du vil kontrollere, hvad der sker, når sløjfen kører for 8. gang, behøver du ikke at gå gennem løkken syv gange for at komme til de ottende iterationer. Du kan simpelthen tilføje et breakpoint før sløjfen og ændre loopvariablen til 8. Nu, når du kører koden, viser den dig, hvad der sker, når sløjferne kører for 8. gang.

Dette bliver meget mere nyttigt, når du skriver komplekse koder og vil fejlsøge bestemte sløjfer.

Antag, at du har en kode som vist herunder:

Sub UnhideSheets () For i = 1 To Worksheets.Count Debug.Print Sheets (i) .Name Next i End Sub

Ovenstående kode viser simpelthen arknavnene på alle arkene i projektmappen i det umiddelbare vindue.

Hvis du ikke vil angive navnene på alle arkene, men kun arkene efter det 10. ark, kan du placere et brudpunkt i den anden linje i sløjfen (så intet efter den linje udføres) og derefter ændre variabel 'i' til 11.

Hvis du vil ændre variabelnavnet i det umiddelbare vindue, skal du indtaste følgende linje:

jeg = 11

Dette sikrer, at de første 10 gange i sløjfen ignoreres, og din variable værdi er indstillet til 11.

Docking/frakobling af det øjeblikkelige vindue

Du kan have øjeblikkeligt vindue forankret til VB Editor - hvilket betyder, at det forbliver ét sted i VB Editor og flytter og størrelser med det.

Og du kan også få den afkoblet, hvilket betyder, at den er uafhængig af VB Editor og kan flyttes som et selvstændigt vindue.

Nedenfor er hvordan du kan ændre dockingindstillingerne for det umiddelbare vindue:

  1. Klik på værktøjsmuligheden i menuen i VB Editor
  2. Klik på 'Indstillinger'
  3. I dialogboksen Indstillinger skal du klikke på den sidste fane - Docking
  4. Marker indstillingen Umiddelbart vindue for at gøre den dockbar, og fjern markeringen for at gøre den ikke-dockbar.
  5. Klik på OK

Alternativt, hvis det umiddelbare vindue er synligt, kan du også højreklikke og ændre ejendommen til dok.

Dockable betyder, at det umiddelbare vindue ville blive en del af det eksisterende vindue ved at placere sig på bestemte steder, f.eks. Til venstre for vinduet eller i bunden. Dette gør det muligt for de forankrede vinduer at flytte og størrelse sammen.

Umiddelbart vindue vises ikke - her er nogle måder at få det på

Der kan være flere årsager til, at dette sker.

Den mest almindelige årsag til, at du ikke ser et øjeblikkeligt vindue, er, at det ikke har gjort synligt. Det er muligvis ikke synligt som standard, og for at få det vist skal du gå til indstillingen Vis i menuen og klikke på indstillingen Umiddelbart vindue. Dette vil sikre, at det er synligt i VB Editor.

Du kan også bruge tastaturet Control + G til at få det umiddelbare vindue til at dukke op. Brug denne tastaturgenvej, mens du er i VB Editor.

En anden grund til, at du muligvis ikke ser det umiddelbare vindue, er, at det er minimeret nu er så lukket, at du ikke kan se det (som rapporteret her). Bare lav en hurtig scanning og tjek, om du ser en lille blå/rød firkant, der lurer et sted. Du kan holde markøren over den, og du vil se en mulighed for at ændre størrelsen på den.

Hvis du slet ikke kan se det umiddelbare vindue, er her noget, der har fungeret for mange mennesker (dette sker ofte på grund af ændringer i skærmopløsningen):

  1. Åbn VB Editor
  2. Tryk på Ctrl-G for at give fokus til det umiddelbare vindue (eller klik på visningsmuligheden i menuen, og klik derefter på det umiddelbare vindue)
  3. Hold ALT -tasten nede, og tryk derefter på mellemrumstasten. Dette viser rullemenuer for det umiddelbare vindue.
  4. Tryk på M (for at flytte)
  5. Brug piletasterne til at flytte vinduet
  6. Når du har fundet ud af, hvor det er, skal du gøre det større

Jeg fik dette fra et forum her og bemærkede også, at det samme blev foreslået som en løsning til, at VBA -øjeblikkeligt vindue ikke dukker op.

En anden ting, du kan prøve, er at gøre det umiddelbare vindue frakobleligt (gå til Værktøjer -> Indstillinger -> Docking, og fjern markeringen af ​​det umiddelbare vindue). Dette har fungeret for nogle mennesker.

Du kan også lide følgende artikler:

  • Excel personlig makro -projektmappe | Gem og brug makroer i alle projektmapper
  • Excel VBA -sløjfer: Til næste, gør mens, gør indtil, for hver (med eksempler)
  • Arbejde med regneark ved hjælp af Excel VBA
  • Oprettelse af en brugerdefineret funktion (UDF) i Excel VBA
wave wave wave wave wave