VBA Åbn / luk projektmappe

I denne vejledning lærer du, hvordan du bruger VBA til at åbne og lukke Excel -projektmappe på flere måder.

VBA giver dig mulighed for at åbne eller lukke filer ved hjælp af standardmetoderne .Åben og .Tæt.

Hvis du vil lære at kontrollere, om der findes en fil, før du forsøger at åbne filen, kan du klikke på dette link: VBA -fil findes

Åbn en projektmappe i VBA

Åbn projektmappe fra sti

Hvis du ved, hvilken fil du vil åbne, kan du angive dens fulde stienavn i funktionen. Her er koden:

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx"

Denne linje i koden åbner filen "Sample file 1" fra "VBA -mappen".

Åbn projektmappe - ActiveWorkbook

Når du åbner en projektmappe, bliver den automatisk til ActiveWorkbook. Du kan referere til den nyåbnede projektmappe sådan:

1 ActiveWorkbook.Save

Når du refererer til et ark eller område og udelader projektmappens navn, antager VBA, at du refererer til ActiveWorkbook:

1 Ark ("Ark1"). Navn = "Input"

Åbn projektmappe, og tildel en variabel

Du kan også åbne en projektmappe og tildele den direkte til en objektvariabel. Denne procedure åbner en projektmappe til wb variabel, og gem derefter projektmappen.

123456 Sub OpenWorkbookToVariable ()Dim wb Som projektmappeIndstil wb = Workbooks.Open ("C: \ VBA -mappe \ prøvefil 1.xlsx")wb. gemmeAfslut Sub

Tildeling af projektmapper til variabler, når de åbnes, er den bedste måde at holde styr på dine projektmapper

Dialogboksen Åbn fil

Du kan også udløse dialogboksen Åbn fil i projektmappen. Dette giver brugeren mulighed for at navigere til en fil og åbne den:

12345678 Sub OpenWorkbook ()Dim strFile Som strengstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)Afslut Sub

Som du kan se i billede 1, kan brugerne med denne tilgang vælge, hvilken fil der skal åbnes. Dialogboksen Åbn fil kan tilpasses stærkt. Du kan som standard vælge en bestemt mappe, vælge hvilke filtyper der er synlige (f.eks. Kun xlsx) og mere. Læs vores selvstudie i dialogboksen Åbn fil for detaljerede eksempler.

Åbn ny projektmappe

Denne kodelinje åbner en ny projektmappe:

1 Workbooks.Add

Åbn ny projektmappe til variabel

Denne procedure åbner en ny projektmappe, der tildeler variabel wb:

1234 Sub OpenNewWorkbook ()Dim wb Som projektmappeIndstil wb = Workbooks.AddAfslut Sub

Åbn projektmappens syntaks

Når du bruger Workbooks.Open, vil du måske bemærke, at der er mange muligheder, når du åbner projektmappen:

Filnavnet er påkrævet. Alle andre argumenter er valgfri - og du behøver sandsynligvis ikke at kende de fleste andre argumenter. Her er de to mest almindelige:

Åben skrivebeskyttet skrivebog

Når projektmappen åbnes skrivebeskyttet, kan du ikke gemme over den originale fil. Dette forhindrer, at filen redigeres af brugeren.

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",, True

Åbn adgangskodebeskyttet projektmappe

En projektmappe kan være beskyttet med adgangskode. Brug denne kode til at åbne den adgangskodebeskyttede projektmappe:

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",,, "password"

Åbn projektmappens syntaksnotater

Bemærk, at i billedet ovenfor inkluderede vi en parentes “(” for at vise syntaksen. Hvis du bruger parentes, når du arbejder med Workbooks.Open, skal du tildele projektmappen til en variabel:

1234 Sub OpenWB ()Dim wb Som projektmappeIndstil wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)Afslut Sub

Luk en projektmappe i VBA

Luk specifik projektmappe

På samme måde som ved at åbne en projektmappe, er der flere måder at lukke en fil på. Hvis du ved, hvilken fil du vil lukke, kan du bruge følgende kode:

1 Workbooks.Close ("C: \ VBA -mappe \ prøvefil 1.xlsx")

Denne kodelinje lukker filen "Eksempelfil 1", hvis den åbnes. Hvis ikke, returnerer det en fejl, så du skal tage hånd om fejlhåndtering.

Luk aktiv projektmappe

Hvis du vil lukke den projektmappe, der i øjeblikket er aktiv, vil denne kodelinje gøre det muligt for dig at gøre det:

1 ActiveWorkbook.Close

Luk alle åbne projektmapper

For at lukke alle åbne projektmapper kan du blot bruge denne kode:

1 Workbooks.Luk

Luk første åbnede projektmappe

Dette lukker den første åbnede/oprettede projektmappe:

1 Arbejdsbøger (1). Luk

Erstat 1 med 2 for at lukke den anden åbnede / oprettede projektmappe og så videre.

Luk uden at gemme

Dette lukker en projektmappe uden at gemme og uden at gemme prompten:

1 ActiveWorkbook.Luk gemte ændringer: = Falsk

Gem og luk uden prompt

Tilsvarende vil dette gemme og lukke en projektmappe uden at vise gemme -prompten:

1 ActiveWorkbook.Close -ændringer: = True

Bemærk: Der er flere andre måder at angive, om en projektmappe skal gemmes eller ej, og om der skal vises prompts eller ej. Dette diskuteres mere detaljeret her.

Andre eksempler på åbne projektmapper

Åbn flere nye projektmapper

Denne procedure åbner flere nye projektmapper og tildeler de nye projektmapper til en matrix:

12345678 Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Som projektmappeDim i As IntegerFor i = 1 til 3Indstil arrWb (i) = Workbooks.AddNæste iAfslut Sub

Åbn alle Excel -projektmapper i en mappe

Denne procedure åbner alle Excel -projektmapper i en mappe ved hjælp af dialogboksen Åbn fil.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb Som projektmappeDim dlgFD som FileDialogDim strFolder Som strengDim strFileName som strengIndstil dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Hvis dlgFD.Show = -1 SåstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Do While strFileName ""Indstil wb = Workbooks.Open (strFolder & strFileName)strFileName = DirSløjfeAfslut HvisAfslut Sub

Kontroller, om en projektmappe er åben

Denne procedure tester, om en projektmappe er åben:

1234567891011 Sub TestByWorkbookName ()Dim wb Som projektmappeFor hver wb i projektmapperHvis wb.Name = "New Microsoft Excel Worksheet.xls" HerefterMsgBox "fandt det"Afslut Sub 'opkaldskode her, vi afslutter lige nuAfslut HvisNæsteAfslut Sub

Workbook_Open begivenhed

VBA -begivenheder er "triggere", der fortæller VBA at køre bestemt kode. Du kan konfigurere projektmappehændelser til åbne, lukke, før gemme, efter gemme og mere.

Læs vores Workbook_Open Event -vejledning for at lære mere om automatisk at køre makroer, når en projektmappe åbnes.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave