Note: The other languages of the website are Google-translated. Back to English

Cum se combină mai multe registre de lucru într-un singur registru de lucru principal în Excel?

Ați fost vreodată blocați când trebuie să combinați mai multe registre de lucru într-un registru de lucru master în Excel? Cel mai teribil lucru este că registrele de lucru pe care trebuie să le combinați conțin mai multe foi de lucru. Și cum să combinați doar foile de lucru specificate pentru mai multe registre de lucru într-un singur registru de lucru? Acest tutorial demonstrează mai multe metode utile pentru a vă ajuta să rezolvați pașii cu pași.


Combinați mai multe registre de lucru într-un singur registru de lucru cu funcția Mutare sau Copiere

Dacă trebuie combinate doar câteva registre de lucru, puteți utiliza comanda Mutare sau Copiere pentru a muta sau copia manual foi de lucru din registrul de lucru original în registrul de lucru principal.

1. Deschideți registrele de lucru pe care le veți îmbina într-un registru principal.

2. Selectați foile de lucru din registrul de lucru original pe care îl veți muta sau copia în registrul de lucru principal.

note:

1). Puteți selecta mai multe foi de lucru neadiacente, ținând apăsat butonul Ctrl tasta și făcând clic pe filele foii unul câte unul.

2). Pentru a selecta mai multe foi de lucru adiacente, vă rugăm să faceți clic pe prima filă de foi, țineți apăsat butonul Schimba , apoi faceți clic pe ultima filă a foii pentru a le selecta pe toate.

3). Puteți face clic dreapta pe orice filă de foaie, faceți clic pe Selectați Toate foile din meniul contextual pentru a selecta toate foile de lucru din registrul de lucru în același timp.

3. După selectarea foilor de lucru necesare, faceți clic dreapta pe fila foaie, apoi faceți clic pe Mutați sau copiați din meniul contextual. Vedeți captura de ecran:

4. Apoi Mutați sau copiați apare fereastra de dialog, în A rezerva derulant, selectați registrul de lucru principal în care veți muta sau copiați foile de lucru. Selectați mutare pentru a termina în Înainte de foaie , bifați caseta Creați o copie , apoi faceți clic pe butonul OK butonul.

Apoi, puteți vedea foi de lucru în două registre de lucru combinate într-una. Vă rugăm să repetați pașii de mai sus pentru a muta foile de lucru din alte registre de lucru în registrul de lucru principal.


Combinați mai multe registre de lucru sau foi de cărți de lucru specificate într-un registru de lucru principal cu VBA

Dacă există mai multe registre de lucru care trebuie îmbinate într-unul singur, puteți aplica următoarele coduri VBA pentru a le realiza rapid. Vă rugăm să faceți următoarele.

1. Puneți toate registrele de lucru pe care doriți să le combinați într-unul sub același director.

2. Lansați un fișier Excel (acest registru de lucru va fi registrul de lucru principal).

3. apasă pe Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră. În Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Module, apoi copiați mai jos codul VBA în fereastra Module.

Cod VBA 1: îmbinați mai multe registre de lucru Excel într-unul singur

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xlsx")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub
	

note:

1. Codul VBA de mai sus va păstra numele foilor registrelor de lucru originale după îmbinare.

2. Dacă doriți să faceți distincția dintre foile de lucru din registrul de lucru principal de unde provin după îmbinare, vă rugăm să aplicați codul VBA 2 de mai jos.

3. Dacă doriți doar să combinați foile de lucru specificate ale registrelor de lucru într-un registru de lucru principal, codul VBA 3 de mai jos vă poate ajuta.

În codurile VBA, „C: \ Users \ DT168 \ Desktop \ KTE \”Este calea folderului. În codul VBA 3, „Sheet1, Sheet3"este fișele de lucru specificate ale registrelor de lucru pe care le veți combina cu un registru de lucru principal. Puteți să le modificați în funcție de nevoile dvs.

Cod VBA 2: Îmbinați registrele de lucru într-una (fiecare foaie de lucru va fi denumită cu prefixul numelui său original de fișier):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Cod VBA 3: Combinați foile de lucru specificate ale registrelor de lucru într-un registru de lucru principal:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. apasă pe F5 tasta pentru a rula codul. Apoi, toate foile de lucru sau foile de lucru specificate ale registrelor de lucru din anumite dosare sunt combinate într-un registru de lucru principal simultan.


Combinați cu ușurință mai multe registre de lucru sau foi de cărți de lucru specificate într-un singur registru de lucru

Din fericire, Combina utilitar registru de lucru al Kutools pentru Excel face mult mai ușoară îmbinarea mai multor registre de lucru într-unul singur. Să vedem cum să funcționăm această funcție în combinarea mai multor registre de lucru.

Înainte de a aplica Kutools pentru Excel, Vă rugăm să descărcați-l și instalați-l mai întâi.

1. Creați un nou registru de lucru și faceți clic pe Kutools Plus > Combina. Apoi apare o fereastră de dialog pentru a vă reaminti că toate registrele de lucru combinate ar trebui să fie salvate și caracteristica nu poate fi aplicată registrelor de lucru protejate, faceți clic pe OK butonul.

2. În Combinați foi de lucru vrăjitor, selectați Combinați mai multe foi de lucru din registrele de lucru într-un singur registru de lucru , apoi faceți clic pe Pagina Următoare → buton. Vedeți captura de ecran:

3. În Combinați foi de lucru - Pasul 2 din 3 , faceți clic pe Adăuga > Fișier or Dosar pentru a adăuga fișierele Excel veți fuziona într-unul singur. După adăugarea fișierelor Excel, faceți clic pe finalizarea și alegeți un folder pentru a salva registrul de lucru principal. Vedeți captura de ecran:

Acum toate registrele de lucru sunt îmbinate într-unul singur.

Comparativ cu cele două metode de mai sus, Kutools pentru Excel are următoarele avantaje:

  • 1) Toate registrele de lucru și foile de lucru sunt listate în caseta de dialog;
  • 2) Pentru foile de lucru pe care doriți să le excludeți de la îmbinare, debifați-le;
  • 3) Fișele de lucru goale sunt excluse automat;
  • 4) Numele fișierului original va fi adăugat ca prefix la numele foii după îmbinare;
  • Pentru mai multe funcții ale acestei funcții, vă rugăm să vizitați aici.

  Dacă doriți să aveți o încercare gratuită (30-zi) a acestei utilitati, vă rugăm să faceți clic pentru a-l descărca, și apoi mergeți pentru a aplica operația conform pașilor de mai sus.


Kutools pentru Excel - Vă ajută să terminați întotdeauna munca înainte de timp, să aveți mai mult timp să vă bucurați de viață
Te găsești adesea jucându-te la curent cu munca, lipsa de timp pe care să-l petreci pentru tine și pentru familie?  Kutools pentru Excel te poate ajuta să faci față 80% Excel puzzle și îmbunătăți eficiența muncii cu 80%, vă oferă mai mult timp pentru a vă ocupa de familie și a vă bucura de viață.
300 de instrumente avansate pentru 1500 de scenarii de lucru, vă fac munca mult mai ușoară ca niciodată.
Nu mai aveți nevoie de memorarea formulelor și codurilor VBA, lăsați-vă creierului să vă odihniți de acum înainte.
Operațiile complicate și repetate pot fi efectuate o procesare unică în câteva secunde.
Reduceți mii de operații de la tastatură și mouse în fiecare zi, spuneți adio acum bolilor profesionale.
Deveniți un expert Excel în 3 minute, vă ajută să vă recunoașteți rapid și să promovați o creștere a salariilor.
110,000 de oameni foarte eficienți și peste 300 de companii de renume mondial la alegere.
Faceți ca 39.0 USD să fie mai în valoare de peste 4000.0 USD pentru antrenamentul altora.
Probă gratuită cu funcții complete 30-zi. Garanție de returnare a banilor de 60 de zile fără motiv.

Comentarii (146)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, vă rog să mă ajutați la această condiție de mai jos. Am un registru de lucru diferit, care are mai mult de 5 foi de lucru fiecare în căi diferite. Trebuie să consolidez toate foile de lucru dintr-un registru de lucru diferit într-un singur registru de lucru. Mă poate ajuta cineva să rezolv cu macro.TIA!
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]Bună, vă rog să mă ajutați la această condiție de mai jos. Am un registru de lucru diferit, care are mai mult de 5 foi de lucru fiecare în căi diferite. Trebuie să consolidez toate foile de lucru dintr-un registru de lucru diferit într-un singur registru de lucru. Mă poate ajuta cineva să rezolv cu macro.TIA!De A. Karthi[/quote] Vă rugăm să descărcați și să instalați Kutools pentru Excel, puteți să o finalizați rapid. Dar dacă doriți să utilizați un VBA, poate fi prea complicat. Pentru mai multe informații despre cum să o faceți, vă rugăm să vizitați:http://www.extendoffice.com/product/kutools-for-excel/excel-combine-worksheets-into-one.html
Acest comentariu a fost redus la minimum de moderatorul de pe site
KUTOOLS O soluție minunată. Am nevoie de încă un ajutor când creez un registru de lucru principal, apoi culoarea celulei foii de lucru este schimbată față de foaia de lucru originală. Cum o pot păstra ca foaia de lucru originală.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Biroul nostru are duplicate de date (de exemplu, numele, adresa, orașul, suma, data semnării) din mai multe originale Excel și încercarea de a combina datele va fi o lucrare în curs. Cum se poate face asta pentru a elimina munca dublă și intrările duble de informații?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Primesc o „eroare de rulare 1004”, metoda de copiere a clasei foii de lucru a eșuat pe linia care scrie: Sheet.Copy After:=ThisWorkbook.Sheets(1). Folosesc Excel 2010. Mă poți ajuta? Mulțumesc, - Susie
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hei, Susie, lucrez la această problemă de ceva vreme și eu, primind aceeași eroare. Verificați dacă modulul a fost creat în PERSONAL în loc de registrul de lucru activ. Odată ce am creat modulul sub arborele corect, codul de mai jos a funcționat bine. Sub GetSheets_xls() Dim Sheet As Worksheet Path = "C:\Users\yournamehere\Desktop\Testingfolder\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=False Set Sheet = ActiveWorkbook.Sheets(1) Sheet.Copy After:=ThisWorkbook.Sheets(1) 'Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub Sper că vă ajută!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc mult. Codul tău a funcționat bine.
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]Primesc o „eroare de rulare 1004”, metoda de copiere a clasei foii de lucru a eșuat pe linia care scrie: Sheet.Copy After:=ThisWorkbook.Sheets(1). Folosesc Excel 2010. Mă poți ajuta? Mulțumesc, - SusieDe Susie[/quote] A avut aceeași problemă, funcționează când merg să vizualizez și să afișez „PERSONAL”, se pare că are probleme la accesarea acestei macrocomenzi cu masterul ascuns.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Accesați și afișați „PERSONAL” - se pare că are probleme la executarea întregului cod în timp ce masterul este ascuns. Puteți face macro-ul nativ pentru acel registru de lucru, dar va trebui să recreați totul de fiecare dată când doriți să o utilizați
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut! Mulțumesc mult pentru acest fișier............. :roll: Cu respect
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună sfat. Făcut aproape tot ce am vrut. În registrul de lucru combinat, mi-ar fi plăcut ca numele foii de lucru să conțină numele registrului de lucru original, așa că știu din ce registru de lucru provin datele. Datele pe care le combin sunt din diferite arhive. Trebuie să caut o intrare, dar nu știu în ce arhivă se află. Deci, combinând toate datele într-un singur fișier, îmi va permite să caut toate arhivele simultan. Dar mai trebuie să știu în ce arhivă se află intrarea. Henrik
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru ca codul să includă numele fișierului, faceți acest lucru. Sub GetSheets() Dim temp As String Path = "C:\Users\....\Desktop\Excel combine\" Filename = Dir(Path & "*.xlsx") Do While Filename "" Workbooks.Open Filename:= Path & Filename, ReadOnly:=True temp = ActiveWorkbook.Name ActiveSheet.Name = temp ActiveWorkbook.Sheets(temp).Copy After:=ThisWorkbook.Sheets(1) Workbooks(Filename).Close Filename = Dir() Loop End Sub Note : aceasta este pentru a copia numai prima foaie, poate fi ajustată pentru a face toate foile
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum încorporați mai multe foi și cum specificați un fișier principal diferit pentru a lipi toate foile.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este într-adevăr o soluție grozavă. mulțumesc. Cu toate acestea, o problemă, atunci când o execut astfel, Excel mă va întreba dacă vreau să salvez modificări înainte de a închide (Deoarece numele a fost schimbat) și nu vreau să o fac pentru fiecare fișier (aproximativ 32 per execuție). Ar exista o modalitate de a rezolva asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este superb :lol: m-a ajutat foarte mult....
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc amice, mi-ai făcut ziua de pe acest site foarte util... De fapt, am vrut să combin aceleași date de antet ale diferitelor foi într-o singură foaie de lucru principală, KUTOOL pentru Excel m-a ajutat foarte mult.... Mulțumesc încă o dată .... :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Multumesc mult pentru informatiile pretioase. Acest lucru chiar funcționează. Pașii enumerați în acest articol mi-au făcut cu adevărat munca mai ușoară. Mulțumesc, Dinesh
Acest comentariu a fost redus la minimum de moderatorul de pe site
multumesc pentru impartasirea cunostintelor tale
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum îl faceți să actualizeze modificările din registrul de lucru original? Încerc să obțin un rezumat național care va avea fiecare regiune să-și introducă datele în propriile registre de lucru și apoi să aibă rezumatul național care se actualizează din asta? Mi-ar plăcea ca acest lucru să fie configurat pentru întregul an la început și să nu lucrez retroactiv.
Acest comentariu a fost redus la minimum de moderatorul de pe site
După ce am combinat foile de lucru într-un singur registru de lucru, cum îl salvezi, nu l-am putut salva, se numește Book1 și fac clic pe salvare sau salvare ca dar nu funcționează. Orice sugestie?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am urmat pașii din „Combină mai multe registre de lucru într-un singur registru de lucru cu VBA” și am făcut clic pe „executare”, nu s-a întâmplat nimic. Nu sunt conștient de erori și nu sunt sigur cum să corectez. M-ai ajuta? următorul este codul pe care l-am introdus într-un nou registru de lucru. Mulțumesc Sub GetSheets() Path = "p:\download\macro\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True pentru fiecare foaie din ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Stimate domnule/doamnă: Am urmat pașii „Combină mai multe registre de lucru într-un singur registru de lucru cu VBA” pentru a configura următorul modul, dar nu s-a întâmplat nimic. Ma ajutati sa gasesc problema? multumesc Sub GetSheets() Path = "p:\download\macro\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
pentru versiuni mai noi de excel, încercați asta. Mi-am salvat registrul de lucru deschis ca catalog și toate fișierele sunt în c:\temp. Sub GetSheets() Path = "c:\temp\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True pentru fiecare foaie din ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încercați acest lucru pentru versiunile mai noi de excel. Mi-am salvat registrul de lucru ca catalog, toate fișierele sunt în c:\temp. Sub GetSheets() Path = "c:\temp\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True pentru fiecare foaie din ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]Încercați acest lucru pentru versiunile mai noi de Excel. Mi-am salvat registrul de lucru ca catalog, toate fișierele sunt în c:\temp. Sub GetSheets() Path = "c:\temp\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True pentru fiecare foaie din ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End SubDe Dave[/quote] Continuu să primesc „nu pot fi atribuite proprietății numai în citire” în ceea ce privește calea... Ai idee?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am si eu problema asta. Ți-ai dat seama?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nimic încă... Nu am găsit nicio soluție sau a sugerat cineva o soluție. scuze...
Acest comentariu a fost redus la minimum de moderatorul de pe site
Şi eu. Acesta a funcționat acum 6 luni, ultima dată când a trebuit să îl rulez. A mai gasit cineva solutia? Dacă l-ați rulat înainte și acum nu va funcționa, ar putea fi ceva de-a face cu o actualizare de la Microsoft? Acesta este un instrument foarte util pentru sarcinile mele și mă economisește mult timp. Ce s-ar fi putut schimba care ar fi făcut ca Excel să înceapă să afișeze acest mesaj dintr-o dată? Fiind destul de nou la VBA, nu am idee de unde să încep să analizez logica. Cu stima, Greg. Glasgow, Scoția.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Se pare că „Calea” este acum rezervată, așa că folosiți orice alt nume și înlocuiți „Calea”, de exemplu, „Calea mea”.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Poate ar trebui să schimbați ReadOnly:=True cu ReadOnly:=False, am făcut și a fost util
Acest comentariu a fost redus la minimum de moderatorul de pe site
Căutam ceva în acest sens, dar am vrut să comentez. Numele fișierului Do While „” nu trebuie să fie altceva decât „”? sau citesc eu gresit? Poate Fă în timp ce NU filename = "" Doar un gând...
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreau să combin toate foile într-o singură foaie în care titlurile sunt comune... vă rugăm să ajutați
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am încercat să folosesc macrocomenzile de mai sus pentru a colaziona câteva fișiere, din păcate, niciun rezultat... poate cineva să mă ajute să scap de colatarea manuală a fișierelor.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am 112 foi Excel pe care vreau să le pun într-o singură foaie fără copiere și lipire. Te rog ajuta-ma.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am un registru de lucru care conține aproximativ 250 de foi. Am nevoie să Cobain într-o singură foaie. va rog sa-mi dati o solutie
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încercați asta... Am primit asta de pe alt site, dar, din păcate, nu-mi amintesc numele doamnei, așa că îmi cer scuze pentru că nu i-am făcut o mențiune, răul" Combină mai multe WB-uri în Excel: ȚINE minte să SCHIMBA MyPath = ! Sub Merge2MultiSheets( ) Dim wbDst As Workbook Dim wbSrc As Workbook Dim wsSrc As Worksheet Dim MyPath As String Dim strFilename As String Application.DisplayAlerts = False Application.EnableEvents = False Application.ScreenUpdating = False MyPath = "\\MyPath\etc\etc..." Set wbDst = Workbooks.Add(xlWBATWorksheet) strFilename = Dir(MyPath & "\*.xls", vbNormal) If Len(strFilename) = 0 Then Exit Sub Do Until strFilename = "" Set wbSrc = Workbooks.Open(Filename:= MyPath & "\" & strFilename) Set wsSrc = wbSrc.Worksheets(1) wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count) wbSrc.Close False strFilename = Dir() Loop wbDst.Worksheets(1). Delete Application.DisplayAlerts = True Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am adăugat codul într-un modul. A numit cartea Excel Masterfile. Unde adaug in cod. mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Niciuna dintre acestea nu a funcționat pentru mine, în cele din urmă l-am făcut pe acesta să funcționeze. FYI Folosesc 2010 „Descriere: Combină toate fișierele dintr-un folder într-un fișier principal. Sub MergeFiles() Dim path As String, ThisWB As String, lngFilecounter As Long Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet Dim Filename As String, Wkb As Workbook Dim CopyRng As Range, Dest As Range Dim RowofCopySheet As Integer Rowoet =CopySheet 2 ' Rândul pe care să începeți în foile pe care le copiați din ThisWB = ActiveWorkbook.Name path = "mypath....." ' Nu uitați să schimbați această aplicație.EnableEvents = False Application.ScreenUpdating = False Set shtDest = ActiveWorkbook .Sheets(1) Filename = Dir(path & "\*.xls", vbNormal) If Len(Filename) = 0 Then Exit Sub Do Until Filename = vbNullString If Not Filename = ThisWB Then Set Wkb = Workbooks.Open(Filename: =cale & „\” & Nume fișier) Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)) Set Dest = shtDest.Range("A" și shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1) CopyRng.Copy Dest Wkb.Close False End If Filename = Dir() Loop Rang e("A1").Select Application.EnableEvents = True Application.ScreenUpdating = True MsgBox „Done!” End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum editez acest lucru, astfel încât datele introduse să înceapă întotdeauna pe rândul de sus? Dacă rulez acest cod de două ori, adaugă datele la sfârșitul datelor mele anterioare (de la prima rulare a macrocomenzii).
Acest comentariu a fost redus la minimum de moderatorul de pe site
Schimbați această linie: RowofCopySheet = 2 în RowofCopySheet = 1
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am mai multe fișiere Excel (o singură foaie) foldere diferite cu protecție prin parolă. Vreau să combin la sfârșitul zilei toate datele într-un singur fișier principal. De fiecare dată când trebuie să introduc parola și să deschid fișierul și să copiez lipiți în fișierul principal. Vă rog să mă ajutați cu codul VBA pentru asta.
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL