Sådan kombineres flere Excel -filer til en Excel -projektmappe

Jeg fik et opkald fra en ven, der ønskede at kombinere flere Excel -filer til en Excel -projektmappe. Han havde mange filer i en mappe, og han ønskede at få alle regnearkene fra alle projektmapperne til en enkelt projektmappe.

Selvom dette kan gøres manuelt, ville det være tidskrævende og tilbøjeligt til fejl.

En simpel VBA -kode kan dog gøre dette på få sekunder.

Kombiner flere Excel -filer til en fil

Her er koden, der kan kombinere flere Excel -projektmapper i en bestemt mappe til en enkelt Excel -projektmappe:

Sub ConslidateWorkbooks () 'Oprettet af Sumit Bansal fra https://trumpexcel.com Dim FolderPath As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "*.xls*") Do While Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True For Every Sheet In ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Next Sheet Workbooks (Filnavn). Luk Filename = Dir () Loop Application.ScreenUpdating = True End Sub

Hvordan bruges denne kode?

Her er trinene til at bruge denne kode:

  • Sæt alle de Excel -filer, du vil kombinere, i en mappe. I forbindelse med denne vejledning har jeg oprettet en mappe ved navn Test og har seks filer i den (4 Excel -projektmapper og 1 Power Point og Word hver).
  • Åbn en ny Excel -projektmappe.
  • Tryk på ALT + F11 (eller gå til Developer -> Code -> Visual Basic). Dette åbner Visual Basic Editor.
  • I VB Editor, i Project Editor, højreklik på et af objekterne til projektmappen og gå til Indsæt -> Modul. Dette indsætter et modul til projektmappen.
  • Dobbeltklik på modulet. Det åbner kodevinduet til højre.
  • Kopier og indsæt ovenstående kode i kodevinduet.
  • I koden skal du ændre følgende kodelinje:
    FolderPath = Environ ("userprofile") & "DesktopTest"

    I denne linje skal du ændre delen i dobbelt citater (fremhævet med orange) med placeringen af ​​den mappe, hvor du har de filer, du vil kombinere. I koden brugt ovenfor er mappen på skrivebordet. Hvis du har det på et andet sted, skal du angive stien her.

  • Placer markøren et vilkårligt sted i koden, og klik på den grønne afspilningsknap i værktøjslinjen (eller tryk på F5 -tasten).

Dette vil køre koden, og alle regneark fra alle Excel -filer i mappen vil blive samlet i en enkelt projektmappe.

Hvordan fungerer denne kode?

  • Koden bruger DIR -funktionen til at hente filnavnene fra den angivne mappe.
  • Følgende linje tildeler variablen 'Filnavn' det første excel -filnavn.
    Filnavn = Dir (FolderPath & “*.xls*”)
  • Derefter bruges Do While -sløjfen til at kontrollere, om alle filerne er dækket.
  • Inden for 'Do While' -sløjfen bruges' For hver' -loop til at kopiere alle regnearkene til den projektmappe, hvor vi kører koden.
  • I slutningen af ​​Do Loop bruges følgende kodelinje: Filnavn = Dir (). Det tildeler det næste Excel -filnavn til variablen Filnavn, og sløjfen starter igen.
  • Når alle filerne er dækket, returnerer DIR -funktionen en tom streng, hvilket er når sløjfen slutter.

Her er en forklaring på DIR -funktionen i MSDN -biblioteket:

Dir returnerer det første filnavn, der matcher stinavn. For at få yderligere filnavne, der matcher stinavn, skal du ringe Dir igen uden argumenter. Når ikke flere filnavne matcher, Dir returnerer en streng med nul længde (“”).

Har du nogensinde prøvet noget af denne slags ved hjælp af VBA? Del hvad du gjorde, så kan vi alle lære af det.

Spar vanvittig tid med VBA. Tjek den Excel VBA KURSUS.

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

wave wave wave wave wave