Kā apvienot vairākus Excel failus vienā Excel darbgrāmatā

Man piezvanīja draugs, kurš vēlējās apvienot vairākus Excel failus vienā Excel darbgrāmatā. Viņam mapē bija daudz failu, un viņš vēlējās visas darblapas no visām darbgrāmatām apkopot vienā darbgrāmatā.

Lai gan to var izdarīt manuāli, tas būtu laikietilpīgs un pakļauts kļūdām.

Tomēr vienkāršs VBA kods to var izdarīt dažu sekunžu laikā.

Apvienojiet vairākus Excel failus vienā failā

Šeit ir kods, kas var apvienot vairākas Excel darbgrāmatas noteiktā mapē vienā Excel darbgrāmatā:

Sub ConslidateWorkbooks () 'Izveidoja Sumits Bansals no vietnes https://trumpexcel.com Dim FolderPath kā ​​virkne Dim faila nosaukums kā virknes aptumšota lapa kā darblapa Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "*.xls*") Do while Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True For For Sheet in ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Nākamās lapas darbgrāmatas [Faila nosaukums]. Aizveriet faila nosaukumu = Dir () cilpas lietojumprogramma. ScreenUpdating = True End Sub

Kā lietot šo kodu?

Tālāk ir norādītas šī koda izmantošanas darbības.

  • Ievietojiet visus Excel failus, kurus vēlaties apvienot mapē. Šīs apmācības nolūkos esmu izveidojis mapi ar nosaukumu Test un tajā ir seši faili (4 Excel darbgrāmatas un 1 Power Point un Word).
  • Atveriet jaunu Excel darbgrāmatu.
  • Nospiediet ALT + F11 (vai dodieties uz Izstrādātājs -> Kods -> Visual Basic). Tiks atvērts Visual Basic redaktors.
  • VB redaktora projektu redaktorā ar peles labo pogu noklikšķiniet uz jebkura darbgrāmatas objekta un dodieties uz Ievietot -> Modulis. Tas ievietos darbgrāmatas moduli.
  • Veiciet dubultklikšķi uz moduļa. Tas atvērs koda logu labajā pusē.
  • Kopējiet un ielīmējiet iepriekš minēto kodu koda logā.
  • Kodā jums jāmaina šāda koda rinda:
    FolderPath = Vide ("userprofile") & "DesktopTest"

    Šajā rindā mainiet daļu ar pēdiņām (izgaismotas oranžā krāsā), norādot tās mapes atrašanās vietu, kurā ir faili, kurus vēlaties apvienot. Iepriekš izmantotajā kodā mape atrodas darbvirsmā. Ja jums tas ir citā vietā, norādiet šo ceļu šeit.

  • Novietojiet kursoru jebkurā koda vietā un rīkjoslas opcijās noklikšķiniet uz zaļās atskaņošanas pogas (vai nospiediet taustiņu F5).

Tādējādi tiks palaists kods, un visas darblapas no visiem mapē esošajiem Excel failiem tiks apvienotas vienā darbgrāmatā.

Kā darbojas šis kods?

  • Kods izmanto funkciju DIR, lai iegūtu failu nosaukumus no norādītās mapes.
  • Nākamā rinda piešķir pirmo Excel faila nosaukumu mainīgajam “Faila nosaukums”.
    Faila nosaukums = Dir (FolderPath & "*.xls*")
  • Pēc tam cilni Do Do izmanto, lai pārbaudītu, vai visi faili ir pārklāti.
  • Cilnē “Darīt” cilpa “Katram” tiek izmantota, lai kopētu visas darblapas darbgrāmatā, kurā mēs izpildām kodu.
  • Do Loop beigās tiek izmantota šāda koda rinda: Filename = Dir (). Tas piešķir mainīgajam faila nosaukumam nākamo Excel faila nosaukumu, un cikls sākas no jauna.
  • Kad visi faili ir pārklāti, funkcija DIR atgriež tukšu virkni, kas ir tad, kad cikls beidzas.

Šeit ir paskaidrojums par funkciju DIR MSDN bibliotēkā:

Rež atgriež pirmo faila nosaukumu, kas atbilst ceļa nosaukumam. Lai iegūtu papildu failu nosaukumus, kas atbilst ceļa nosaukumam, zvaniet Rež atkal bez argumentiem. Ja vairs neatbilst failu nosaukumi, Rež atgriež nulles garuma virkni (“”).

Vai esat kādreiz mēģinājis kaut ko tādu, izmantojot VBA? Pastāstiet, ko darījāt, un mēs visi varam no tā mācīties.

Ietaupiet traku laiku, izmantojot VBA. Pārbaudiet Excel VBA KURSS.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave