Articles

Brug af Projektmappeobjekt i VBA (Åbn, Luk, Gem, sæt)

i denne vejledning vil jeg dække hvordan man arbejder med projektmapper i VBA.

i projektmappe er en projektmappe et objekt, der er en del af samlingen ‘projektmapper’. I en projektmappe har du forskellige objekter, f.eks. regneark, diagramark, celler og områder, diagramobjekter, figurer osv.

med VBA kan du gøre en masse ting med et projektmappeobjekt – såsom at åbne en bestemt projektmappe, gemme og lukke projektmapper, oprette nye projektmapper, ændre projektmappeegenskaber osv.

så lad os komme i gang.

alle de koder, jeg nævner i denne tutorial, skal placeres i Visual Basic Editor. Gå til afsnittet’ Hvor skal du placere VBA-koden ‘ for at vide, hvordan det fungerer.

Hvis du er interesseret i at lære VBA på den nemme måde, så tjek min online VBA-træning.

denne Tutorial dækker:

henvisning til en projektmappe ved hjælp af VBA

der er forskellige måder at henvise til et Projektmappeobjekt i VBA. Den metode, du vælger, afhænger af, hvad du vil have gjort. I dette afsnit vil jeg dække de forskellige måder at henvise til en projektmappe sammen med nogle eksempelkoder.

brug af Projektmappenavne

Hvis du har det nøjagtige navn på den projektmappe, du vil henvise til, kan du bruge navnet i koden.

lad os begynde med et simpelt eksempel.

Hvis du har to projektmapper åbne, og du vil aktivere projektmappen med navneeksemplerne.

Sub ActivateWorkbook()Workbooks("Examples.xlsx").ActivateEnd Sub

Bemærk, at du skal bruge filnavnet sammen med udvidelsen, hvis filen er gemt. Hvis det ikke er gemt, kan du bruge navnet uden filtypen.

Hvis du ikke er sikker på, hvilket navn du skal bruge, kan du hente hjælp fra Projektforskeren.

Projektarkobjekt i projektudforsker

Hvis du vil aktivere en projektmappe og vælge en bestemt celle i et regneark i den projektmappe, skal du angive hele adressen på cellen (inklusive projektmappen og regnearkets navn).

Sub ActivateWorkbook()Workbooks("Examples.xlsx").Worksheets("Sheet1").ActivateRange("A1").SelectEnd Sub

ovenstående kode aktiverer først Sheet1 i eksemplerne.vælg derefter celle A1 i arket.

du vil ofte se en kode, hvor der henvises til et regneark eller et celle/område uden at henvise til projektmappen. Dette sker, når du henviser til regnearket/intervallerne i den samme projektmappe, der har koden i den og også er den aktive projektmappe. I nogle tilfælde skal du dog angive projektmappen for at sikre, at koden fungerer (mere om dette i afsnittet om dette projektmappe).

brug af indeksnumre

Du kan også henvise til arbejdsbøgerne baseret på deres indeksnummer.hvis du f.eks. har tre projektmapper åbne, viser følgende kode navnene på de tre projektmapper i en meddelelsesboks (en ad gangen).

Sub WorkbookName()MsgBox Workbooks(1).NameMsgBox Workbooks(2).NameMsgBox Workbooks(3).NameEnd Sub

ovenstående kode bruger Msgboks – som er en funktion, der viser en meddelelsesboks med den angivne tekst/værdi (som er projektmappens navn i dette tilfælde).

en af de problemer, jeg ofte har med at bruge indeksnumre med arbejdsbøger, er, at du aldrig ved, hvilken der er den første projektmappe, og hvilken der er den anden og så videre. For at være sikker skal du køre koden som vist ovenfor eller noget der ligner loop gennem de åbne arbejdsbøger og kende deres indeksnummer.behandler projektmappen åbnet først for at have indeksnummeret som 1, og den næste som 2 og så videre.

På trods af denne ulempe kan brug af indeksnumre komme til nytte. Vil gennemgå alle de åbne projektmapper og gemme alle, kan du bruge indeksnumrene. I dette tilfælde, da du vil have dette til at ske for alle arbejdsbøger, er du ikke bekymret for deres individuelle indeksnumre.

nedenstående kode løber gennem alle de åbne projektmapper og lukker alle undtagen projektmappen, der har denne VBA-kode.

Sub CloseWorkbooks()Dim WbCount As IntegerWbCount = Workbooks.CountFor i = WbCount To 1 Step -1If Workbooks(i).Name <> ThisWorkbook.Name ThenWorkbooks(i).CloseEnd IfNext iEnd Sub

ovenstående kode tæller antallet af åbne arbejdsbøger og går derefter gennem alle arbejdsbøger ved hjælp af For hver sløjfe.

det bruger if-betingelsen til at kontrollere, om navnet på projektmappen er det samme som i projektmappen, hvor koden køres.

Hvis det ikke er et match, lukker projektmappen og flytter til den næste.

Bemærk, at vi har kørt sløjfen fra Vbtæl til 1 Med et trin på -1. Dette gøres som med hver sløjfe, antallet af åbne arbejdsbøger falder.

Dettearbejdsbogen er dækket i detaljer i det senere afsnit.

brug af Aktivarbejdsbog

Aktivarbejdsbog henviser, som navnet antyder, til den projektmappe, der er aktiv.

nedenstående kode viser dig navnet på den aktive projektmappe.

Sub ActiveWorkbookName()MsgBox ActiveWorkbook.NameEnd Sub

Når du bruger VBA til at aktivere en anden projektmappe, vil Aktivarbejdsbogdelen i VBA derefter begynde at henvise til den aktiverede projektmappe.

Her er et eksempel på dette.

Hvis du har en projektmappe aktiv, og du indsætter følgende kode i den og kører den, viser den først navnet på den projektmappe, der har koden, og derefter navnet på eksempler.(som aktiveres af koden).

Sub ActiveWorkbookName()MsgBox ActiveWorkbook.NameWorkbooks("Examples.xlsx").ActivateMsgBox ActiveWorkbook.NameEnd Sub

Bemærk, at når du opretter en ny projektmappe ved hjælp af VBA, bliver den nyoprettede projektmappe automatisk den aktive projektmappe.

brug af denne projektmappe

denne projektmappe henviser til den projektmappe, hvor koden udføres.

hver projektmappe ville have et objekt som en del af det (synligt i Projektforskeren).

Projektmappeobjekt i VBA - Dettearbejdsbog

‘Dettearbejdsbog’ kan gemme almindelige makroer (svarende til dem, vi tilføjer moduler) samt hændelsesprocedurer. En hændelsesprocedure er noget, der udløses baseret på en begivenhed – såsom at dobbeltklikke på en celle eller gemme en projektmappe eller aktivere et regneark.

enhver begivenhedsprocedure, som du gemmer i denne ‘denne projektmappe’, vil være tilgængelig i hele projektmappen sammenlignet med begivenhederne på arkniveau, der kun er begrænset til de specifikke ark.

Hvis du f.eks. dobbeltklikker på objektet Thisarbejdsbog i Projektforskeren og kopierer nedenstående kode i den, viser den celleadressen, når du dobbeltklikker på en af cellerne i hele projektmappen.

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

mens Dettearbejdsbogens vigtigste rolle er at gemme hændelsesproceduren, kan du også bruge den til at henvise til projektmappen, hvor koden udføres.

nedenstående KODE Returnerer navnet på den projektmappe, hvor koden udføres.

Sub ThisWorkbookName()MsgBox ThisWorkbook.NameEnd Sub

fordelen ved at bruge Dettearbejdsbog (over Aktivarbejdsbog) er, at det ville henvise til den samme projektmappe (den der har koden i den) i alle tilfælde. Så hvis du bruger en VBA-kode til at tilføje en ny projektmappe, ændres den aktive arbejdsbog, men denne arbejdsbog henviser stadig til den, der har koden.

oprettelse af et nyt Projektmappeobjekt

følgende kode opretter en ny projektmappe.

Sub CreateNewWorkbook()Workbooks.AddEnd Sub

Når du tilføjer en ny projektmappe, bliver den den aktive projektmappe.

følgende kode tilføjer en ny projektmappe og viser dig derefter navnet på den projektmappe (som ville være Standardnavnet for Bog1-typen).

Sub CreateNewWorkbook()Workbooks.AddMsgBox ActiveWorkbook.NameEnd Sub

Åbn en projektmappe ved hjælp af VBA

Du kan bruge VBA til at åbne en bestemt projektmappe, når du kender filstien i projektmappen.

nedenstående kode åbner projektmappen – eksempler.som er i mappen Dokumenter på mit system.

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

Hvis filen findes i standardmappen, som er den mappe, hvor VBA gemmer nye filer som standard, kan du bare angive projektmappens navn – uden hele stien.

Sub OpenWorkbook()Workbooks.Open ("Examples.xlsx")End Sub

Hvis den projektmappe, du forsøger at åbne, ikke findes, vil du se en fejl.

for at undgå denne fejl kan du tilføje et par linjer til din kode for først at kontrollere, om filen findes eller ej, og hvis den findes, så prøv at åbne den.

nedenstående kode kontrollerer filens placering, og hvis den ikke findes, viser den en brugerdefineret meddelelse (ikke fejlmeddelelsen):

Sub OpenWorkbook()If Dir("C:\Users\sumit\Documents\Examples.xlsx") <> "" ThenWorkbooks.Open ("C:\Users\sumit\Documents\Examples.xlsx")ElseMsgBox "The file doesn't exist"End IfEnd Sub

Du kan også bruge dialogboksen Åbn til at vælge den fil, du vil åbne.

Sub OpenWorkbook()On Error Resume NextDim FilePath As StringFilePath = Application.GetOpenFilenameWorkbooks.Open (FilePath)End Sub

ovenstående kode åbner dialogboksen Åbn. Når du vælger en fil, du vil åbne, tildeler den filstien til filepath-variablen. Projektmappe.Åbn bruger derefter filstien til at åbne filen.

hvis brugeren ikke åbner en fil og klikker på knappen Annuller, bliver FilePath falsk. For at undgå at få en fejl i dette tilfælde har vi brugt erklæringen ‘On Error CV næste’.

relateret: Lær alt om fejlhåndtering i

lagring af en projektmappe

for at gemme den aktive projektmappe skal du bruge koden nedenfor:

Sub SaveWorkbook()ActiveWorkbook.SaveEnd Sub

denne kode fungerer for de projektmapper, der allerede er gemt tidligere. Da projektmappen indeholder ovenstående Makro, hvis den ikke er gemt som en .LSM (eller .du vil miste makroen, når du åbner den næste.

Hvis du gemmer projektmappen for første gang, viser den dig en prompt som vist nedenfor:

Projektmappeobjekt i VBA - advarsel, når du gemmer projektmappe for første gang

Når du gemmer for første gang, er det bedre at bruge indstillingen ‘Saveas’.

nedenstående kode gemmer den aktive projektmappe som en .standardplaceringen (som er dokumentmappen i mit system).

Sub SaveWorkbook()ActiveWorkbook.SaveAs Filename:="Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabledEnd Sub

Hvis du vil have filen gemt på et bestemt sted, skal du nævne det i Filnavnsværdien. Nedenstående kode gemmer filen på mit skrivebord.

Sub SaveWorkbook()ActiveWorkbook.SaveAs Filename:="C:\Users\sumit\Desktop\Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabledEnd Sub

Hvis du vil have brugeren mulighed for at vælge placeringen for at gemme filen, kan du bruge ring til dialogboksen Saveas. Nedenstående kode viser dialogboksen Saveas og giver brugeren mulighed for at vælge det sted, hvor filen skal gemmes.

Sub SaveWorkbook()Dim FilePath As StringFilePath = Application.GetSaveAsFilenameActiveWorkbook.SaveAs Filename:=FilePath & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabledEnd Sub

Bemærk, at i stedet for at bruge filformat:=hlopenchmlarbejdsbogmacroenabled, kan du også bruge filformat:=52, hvor 52 er koden hlopenchmlarbejdsbogmacroenabled.

lagring af alle åbne projektmapper

Hvis du har mere end en projektmappe åben, og du vil gemme alle projektmapper, kan du bruge koden nedenfor:

Sub SaveAllWorkbooks()Dim wb As WorkbookFor Each wb In Workbookswb.SaveNext wbEnd Sub

ovenstående gemmer alle projektmapper, inklusive dem, der aldrig er gemt. De projektmapper, der ikke er blevet gemt tidligere ville blive gemt i standard placering.

Hvis du kun vil gemme de projektmapper, der tidligere er gemt, kan du bruge nedenstående kode:

Sub SaveAllWorkbooks()Dim wb As WorkbookFor Each wb In WorkbooksIf wb.Path <> "" Thenwb.SaveEnd IfNext wbEnd Sub

lagring og lukning af alle arbejdsbøger

Hvis du vil lukke alle arbejdsbøger, undtagen projektmappen, der har den aktuelle kode i den, kan du bruge koden nedenfor:

Sub CloseandSaveWorkbooks()Dim wb As WorkbookFor Each wb In WorkbooksIf wb.Name <> ThisWorkbook.Name Thenwb.Close SaveChanges:=TrueEnd IfNext wbEnd Sub

ovenstående kode lukker alle arbejdsbøger (undtagen projektmappen, der har koden – denne bog). Hvis der er ændringer i disse projektmapper, gemmes ændringerne. Hvis der er en projektmappe, der aldrig er gemt, viser den dialogboksen Gem som.

Gem en kopi af projektmappen (med tidsstempel)

når jeg arbejder med komplekse data og dashboard i projektmapper, opretter jeg ofte forskellige versioner af mine projektmapper. Dette er nyttigt, hvis noget går galt med Min nuværende projektmappe. Jeg ville i det mindste have en kopi af den gemt med et andet navn (og jeg ville kun miste det arbejde, jeg gjorde efter at have oprettet en kopi).

Her er VBA-koden, der opretter en kopi af din projektmappe og gemmer den på det angivne sted.

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

ovenstående kode gemmer en kopi af din projektmappe, hver gang du kører denne makro.

selvom dette fungerer godt, ville jeg føle mig mere komfortabel, hvis jeg havde forskellige kopier gemt, når jeg kører denne kode. Årsagen til, at dette er vigtigt, er, at hvis jeg laver en utilsigtet fejl og kører denne makro, vil det redde arbejdet med fejlene. Og jeg ville ikke have adgang til arbejdet, før jeg begik fejlen.

for at håndtere sådanne situationer kan du bruge nedenstående kode, der gemmer en ny kopi af arbejdet, hver gang du gemmer det. Og det tilføjer også en dato og tidsstempel som en del af projektmappens navn. Dette kan hjælpe dig med at spore enhver fejl, du gjorde, da du aldrig mister nogen af de tidligere oprettede sikkerhedskopier.

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

ovenstående kode opretter en kopi hver gang du kører denne makro og tilføjer et dato/tidsstempel til projektmappens navn.

Opret en ny projektmappe for hvert regneark

i nogle tilfælde har du muligvis en projektmappe med flere regneark, og du vil oprette en projektmappe for hvert regneark.

dette kan være tilfældet, når du har månedlige/kvartalsrapporter i en enkelt projektmappe, og du vil opdele disse i en projektmappe for hvert regneark.

eller, hvis du har afdelingsvise rapporter, og du vil opdele disse i individuelle arbejdsbøger, så du kan sende disse individuelle arbejdsbøger til afdelingslederne.

Her er koden, der opretter en projektmappe for hvert regneark, giver det samme navn som regnearket og gemmer det i den angivne mappe.

Sub CreateWorkbookforWorksheets()Dim ws As WorksheetDim wb As WorkbookFor Each ws In ThisWorkbook.WorksheetsSet wb = Workbooks.Addws.Copy Before:=wb.Sheets(1)Application.DisplayAlerts = Falsewb.Sheets(2).DeleteApplication.DisplayAlerts = Truewb.SaveAs "C:\Users\sumit\Desktop\Test\" & ws.Name & ".xlsx"wb.CloseNext wsEnd Sub

i ovenstående kode har vi brugt to variable ‘vs’ og ‘VB’.

koden går gennem hvert regneark (ved hjælp af For hver næste sløjfe) og opretter en projektmappe til den. Det bruger også kopieringsmetoden for regnearkobjektet til at oprette en kopi af regnearket i den nye projektmappe.

Bemærk, at jeg har brugt SET-sætningen til at tildele variablen ‘VB’ til enhver ny projektmappe, der oprettes af koden.

Du kan bruge denne teknik til at tildele et projektmappeobjekt til en variabel. Dette er dækket i næste afsnit.

Tildel Projektmappeobjekt til en variabel

i VBA kan du tildele et objekt til en variabel og derefter bruge variablen til at henvise til det pågældende objekt.i nedenstående kode bruger jeg f.eks. VBA til at tilføje en ny projektmappe og derefter tildele projektmappen til variablen VB. For at gøre dette skal jeg bruge SET-sætningen.

når jeg har tildelt projektmappen til variablen, stilles alle egenskaber i projektmappen også til rådighed for variablen.

Sub AssigntoVariable()Dim wb As WorkbookSet wb = Workbooks.Addwb.SaveAs Filename:="C:\Users\sumit\Desktop\Examples.xlsx"End Sub

Bemærk, at det første trin i koden er at erklære ‘VB’ som en projektmappetypevariabel. Dette fortæller VBA, at denne variabel kan indeholde projektmappeobjektet.

Den næste sætning bruger SET til at tildele variablen til den nye projektmappe, som vi tilføjer. Når denne opgave er udført, kan vi bruge variablen VB til at gemme projektmappen (eller gøre noget andet med den).

Looping gennem åbne arbejdsbøger

Vi har allerede set et par eksempler koder ovenfor, der bruges looping i koden.

i dette afsnit vil jeg forklare forskellige måder at løbe gennem åbne arbejdsbøger ved hjælp af VBA.

Antag, at du vil gemme og lukke alle de åbne projektmapper, undtagen den med koden i den, så kan du bruge nedenstående kode:

Sub CloseandSaveWorkbooks()Dim wb As WorkbookFor Each wb In WorkbooksIf wb.Name <> ThisWorkbook.Name Thenwb.Close SaveChanges:=TrueEnd IfNext wbEnd Sub

ovenstående kode bruger for hver sløjfe til at gennemgå hver projektmappe i Projektmappesamlingen. For at gøre dette skal vi først erklære ‘VB’ som projektmappetypevariablen.

i hver loop-cyklus analyseres hvert projektmappenavn, og hvis det ikke stemmer overens med navnet på den projektmappe, der har koden, lukkes det, når indholdet er gemt.

det samme kan også opnås med en anden sløjfe som vist nedenfor:

Sub CloseWorkbooks()Dim WbCount As IntegerWbCount = Workbooks.CountFor i = WbCount To 1 Step -1If Workbooks(i).Name <> ThisWorkbook.Name ThenWorkbooks(i).Close SaveChanges:=TrueEnd IfNext iEnd Sub

ovenstående kode bruger til næste sløjfe til at lukke alle arbejdsbøger undtagen den, der har koden i den. I dette tilfælde behøver vi ikke at erklære en projektmappevariabel, men i stedet skal vi tælle det samlede antal åbne projektmapper. Når vi har optællingen, bruger vi til næste løkke til at gennemgå hver projektmappe. Vi bruger også indeksnummeret til at henvise til arbejdsbøgerne i dette tilfælde.

Bemærk, at vi i ovenstående kode løber fra Vbtæl til 1 med trin -1. Dette er nødvendigt som med hver sløjfe, projektmappen bliver lukket, og antallet af projektmapper bliver reduceret med 1.

fejl under arbejdet med Projektmappeobjektet (Run-time error ‘9’)

en af de mest almindelige fejl, du kan støde på, når du arbejder med projektmapper, er – Run-time Error ‘9’ – Subscript uden for rækkevidde.

Projektmappeobjekt i VBA - Runtime Error 9 abonnement uden for rækkevidde

generelt er VBA-fejl ikke meget informative og overlader det ofte til dig at finde ud af, hvad der gik galt.

Her er nogle af de mulige årsager, der kan føre til denne fejl:

  • den projektmappe, du forsøger at få adgang til, findes ikke. For eksempel, hvis jeg forsøger at få adgang til den femte projektmappe ved hjælp af projektmapper(5), og der kun er 4 projektmapper åbne, så får jeg denne fejl.
  • hvis du bruger et forkert navn til at henvise til projektmappen. For eksempel, hvis dit projektmappenavn er eksempler.og du bruger eksempel.- Nej. så vil det vise dig denne fejl.
  • hvis du ikke har gemt en projektmappe, og du bruger udvidelsen, får du denne fejl. For eksempel, hvis dit projektmappenavn er Book1, og du bruger navnet Book1.uden at gemme det, får du denne fejl.
  • den projektmappe, du forsøger at få adgang til, er lukket.

få en liste over alle åbne projektmapper

Hvis du vil have en liste over alle de åbne projektmapper i den aktuelle projektmappe (projektmappen, hvor du kører koden), kan du bruge nedenstående kode:

Sub GetWorkbookNames()Dim wbcount As Integerwbcount = Workbooks.CountThisWorkbook.Worksheets.AddActiveSheet.Range("A1").ActivateFor i = 1 To wbcountRange("A1").Offset(i - 1, 0).Value = Workbooks(i).NameNext iEnd Sub

ovenstående kode tilføjer et nyt regneark og viser derefter navnet på alle de åbne projektmapper.

Hvis du også vil have deres filsti, kan du bruge nedenstående kode:

Sub GetWorkbookNames()Dim wbcount As Integerwbcount = Workbooks.CountThisWorkbook.Worksheets.AddActiveSheet.Range("A1").ActivateFor i = 1 To wbcountRange("A1").Offset(i - 1, 0).Value = Workbooks(i).Path & "\" & Workbooks(i).NameNext iEnd Sub

Åbn den angivne projektmappe ved at dobbeltklikke på cellen

Hvis du har en liste over filstier til projektmapper, kan du bruge nedenstående kode til blot at dobbeltklikke på cellen med filstien, og den åbner den projektmappe.

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

denne kode vil blive placeret i vinduet med denne Bogkode.

for at gøre dette:

  • Dobbeltklik på objektet i projektforskeren. Bemærk, at objektet Thisarbejdsbog skal være i projektmappen, hvor du vil have denne funktionalitet.
  • Kopier og indsæt ovenstående kode.

nu, hvis du har den nøjagtige sti for de filer, du vil åbne, kan du gøre det ved blot at dobbeltklikke på filstien, og VBA åbner straks projektmappen.

hvor skal VBA-koden placeres

spekulerer du på, hvor VBA-koden går i din projektmappe?en VBA-backend kaldes VBA-editoren. Du skal kopiere og indsætte koden i vinduet VB Editor module code.

Her er trinene til at gøre dette:

  1. gå til fanen Udvikler.brug af projektmapper i fanen VBA - udvikler i bånd
  2. Klik på Visual Basic-indstillingen. Dette åbner VB-editoren i backend.Klik på Visual Basic
  3. i ruden Projektudforsker i Vb-editoren skal du højreklikke på ethvert objekt til projektmappen, hvor du vil indsætte koden. Hvis du ikke kan se Projektudforskeren, skal du gå til fanen Vis og klikke på Projektudforskeren.
  4. gå til Indsæt og klik på modul. Dette vil indsætte et modulobjekt til din projektmappe.brug af projektmapper i VBA - indsætningsmodul
  5. Kopier og indsæt koden i modulvinduet.brug af projektmapper i VBA - indsætningsmodul

Du kan også lide følgende VBA-Tutorials:

  • Sådan optages en makro i VBA.
  • oprettelse af en brugerdefineret funktion.
  • Sådan oprettes og bruges tilføjelsesprogrammet.
  • Sådan genoptages makroer ved at placere den i den personlige Makro-projektmappe.
  • Hent listen over filnavne fra en mappe (med og uden VBA).
  • Sådan bruges VBA InStr-funktionen (med praktiske eksempler).
  • sådan sorteres Data ved hjælp af VBA (en trinvis vejledning).