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

Kako združiti več delovnih zvezkov v en glavni delovni zvezek v Excelu?

Ste se kdaj zataknili, ko morate združiti več delovnih zvezkov v glavni delovni zvezek v Excelu? Najbolj grozno je, da delovni zvezki, ki jih morate združiti, vsebujejo več delovnih listov. In kako združiti samo določene delovne liste več delovnih zvezkov v en delovni zvezek? Ta vadnica prikazuje več uporabnih metod, ki vam pomagajo postopoma rešiti težavo.


Več delovnih zvezkov združite v en delovni zvezek s funkcijo premikanja ali kopiranja

Če je treba združiti le nekaj delovnih zvezkov, lahko z ukazom Premakni ali Kopiraj ročno premaknete ali kopirate delovne liste iz prvotnega v glavni delovni zvezek.

1. Odprite delovne zvezke, ki jih boste združili v glavni delovni zvezek.

2. V izvirnem delovnem zvezku izberite delovne liste, ki jih boste premaknili ali kopirali v glavni delovni zvezek.

Opombe:

1). Izberete lahko več sosednjih delovnih listov z držanjem gumba Ctrl in kliknete zavihke lista enega za drugim.

2). Za izbiro več sosednjih delovnih listov kliknite na zavihek prvega lista in pridržite Shift in kliknite zadnji jeziček lista, da jih izberete.

3). Z desno miškino tipko lahko kliknete kateri koli zavihek lista in kliknete Izberite Vse liste v kontekstnem meniju, da hkrati izberete vse delovne liste v delovnem zvezku.

3. Ko izberete potrebne delovne liste, z desno miškino tipko kliknite jeziček lista in nato kliknite Premakni ali Kopiraj iz kontekstnega menija. Oglejte si posnetek zaslona:

4. Nato Premakni ali Kopiraj pokaže se pogovorno okno v Rezervirati v spustnem meniju izberite glavni delovni zvezek, v katerega boste premaknili ali kopirali delovne liste. Izberite premakni za konec v Pred listom potrdite polje Ustvari kopijo in na koncu kliknite OK gumb.

Nato si lahko ogledate delovne liste v dveh delovnih zvezkih, združenih v enega. Ponovite zgornje korake za premik delovnih listov iz drugih delovnih zvezkov v glavni delovni zvezek.


Kombinirajte več delovnih zvezkov ali določenih listov delovnih zvezkov v glavni delovni zvezek z VBA

Če je treba več delovnih zvezkov združiti v enega, lahko za hitro doseganje uporabite naslednje kode VBA. Naredite naslednje.

1. Vse delovne zvezke, ki jih želite združiti, shranite v isti imenik.

2. Zaženite datoteko Excel (ta delovni zvezek bo glavni delovni zvezek).

3. Pritisnite druga + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno. V Microsoft Visual Basic za aplikacije okno, kliknite Vstavi > Moduli, nato kopirajte spodnjo kodo VBA v okno modula.

Koda VBA 1: združite več Excelovih delovnih zvezkov v enega

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
	

Opombe:

1. Zgornja koda VBA bo po združitvi ohranila imena listov izvirnih delovnih zvezkov.

2. Če želite razlikovati, kateri delovni listi v glavnem delovnem zvezku so prišli po združitvi, uporabite spodnjo kodo VBA 2.

3. Če želite zgolj združiti določene delovne liste delovnih zvezkov v glavni delovni zvezek, vam lahko pomaga spodnja koda VBA 3.

V kodah VBA »C: \ Users \ DT168 \ Desktop \ KTE \"Je pot do mape. V kodi VBA 3 "List1, List3"je določen delovni list delovnih zvezkov, ki ga boste združili v glavni delovni zvezek. Lahko jih spremenite glede na svoje potrebe.

Koda VBA 2: Združi delovne zvezke v enega (vsak delovni list bo poimenovan s predpono izvirnega imena datoteke):

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

Koda VBA 3: Združi določene delovne liste delovnih zvezkov v glavni delovni zvezek:

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. Pritisnite F5 tipko za zagon kode. Nato se vsi delovni listi ali določeni delovni listi delovnih zvezkov v določeni mapi naenkrat združijo v glavni delovni zvezek.


Preprosto združite več delovnih zvezkov ali določenih listov delovnih zvezkov v en delovni zvezek

Na srečo, na Združite pripomoček za Kutools za Excel veliko lažje združi več delovnih zvezkov v enega. Poglejmo, kako doseči, da ta funkcija deluje v kombinaciji več delovnih zvezkov.

Pred vložitvijo vloge Kutools za ExcelProsim najprej ga prenesite in namestite.

1. Ustvarite nov delovni zvezek in kliknite Kutools Plus > Združite. Nato se prikaže pogovorno okno, ki vas opozori, da je treba shraniti vse kombinirane delovne zvezke in funkcije ni mogoče uporabiti za zaščitene delovne zvezke, kliknite OK gumb.

2. V Ljubljani Združite delovne liste čarovnika, izberite Več delovnih listov iz delovnih zvezkov združite v en delovni zvezek in nato kliknite Naslednji . Oglejte si posnetek zaslona:

3. V Ljubljani Združite delovne liste - 2. korak od 3 pogovorno okno, kliknite na Dodaj > file or Mapa če želite dodati Excelove datoteke, jih boste združili v eno. Ko dodate datoteke Excel, kliknite Konec in izberite mapo, v katero želite shraniti glavni delovni zvezek. Oglejte si posnetek zaslona:

Zdaj so vsi delovni zvezki združeni v enega.

V primerjavi z zgornjima dvema metodama Kutools za Excel ima naslednje prednosti:

  • 1) V pogovornem oknu so navedeni vsi delovni zvezki in delovni listi;
  • 2) Za delovne liste, ki jih želite izključiti iz spajanja, samo počistite;
  • 3) Prazni delovni listi so samodejno izključeni;
  • 4) Izvirno ime datoteke bo po združitvi dodano kot predpona imenu lista;
  • Za več funkcij te funkcije: prosim obiščite tukaj.

  Če želite imeti brezplačno (30-dnevno) preskusno različico tega pripomočka, kliknite, če ga želite prenestiin nato nadaljujte z uporabo postopka v skladu z zgornjimi koraki.


Kutools za Excel - Pomaga vam, da vedno končate delo pred časom, imejte več časa za uživanje v življenju
Se pogosto znajdete v igri za dohitevanje dela, pomanjkanje časa zase in za družino?  Kutools za Excel vam lahko pomaga pri reševanju 80% ugank v Excelu in izboljša 80-odstotno delovno učinkovitost, vam daje več časa za skrb za družino in uživanje v življenju.
300 naprednih orodij za 1500 delovnih scenarijev vam olajša delo kot kdaj koli prej.
Ni vam več treba zapomniti formul in kod VBA, odslej si privoščite počitek v možganih.
Zapletene in ponavljajoče se operacije je mogoče enkrat obdelati v nekaj sekundah.
Vsak dan zmanjšajte na tisoče operacij tipkovnice in miške, zdaj se poslovite od poklicnih bolezni.
Postanite strokovnjak za Excel v 3 minutah, vam pomaga hitro prepoznati in napredovanje za dvig plače.
Izbira 110,000 visoko učinkovitih ljudi in 300+ svetovno priznanih podjetij.
Naj bodo vaši 39.0 USD vredni več kot 4000.0 USD usposabljanja drugih.
Popolnoma brezplačna preizkusna različica 30-dnevna. 60-dnevno jamstvo za vračilo denarja brez razloga.

Komentarji (146)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, prosim, pomagajte mi pri tem spodnjem stanju. Imam drugačen delovni zvezek, ki ima več kot 5 delovnih listov na različnih poti. Vse delovne liste iz različnih delovnih zvezkov moram združiti v en delovni zvezek. Mi lahko kdo pomaga rešiti z macro.TIA!
Ta komentar je moderator na spletnem mestu minimiziral
[quote]Živjo, prosim, pomagajte mi pri tem spodnjem stanju. Imam drugačen delovni zvezek, ki ima več kot 5 delovnih listov na različnih poti. Vse delovne liste iz različnih delovnih zvezkov moram združiti v en delovni zvezek. Mi lahko kdo pomaga rešiti z macro.TIA!Avtor: A. Karthi[/quote] Prosimo, pojdite na prenos in namestitev Kutools za Excel, to lahko hitro opravite. Če pa želite uporabiti VBA, je morda preveč zapleteno. Za več informacij o tem, kako to narediti, obiščite:http://www.extendoffice.com/product/kutools-for-excel/excel-combine-worksheets-into-one.html
Ta komentar je moderator na spletnem mestu minimiziral
KUTOOLS Odlična rešitev. Potrebujem še eno pomoč, ko ustvarim glavni delovni zvezek, potem se barva celice delovnega lista spremeni iz izvirnega delovnega lista. Kako ga lahko ohranim kot originalni delovni list.
Ta komentar je moderator na spletnem mestu minimiziral
Naša pisarna ima podvojene podatke (tj. ime, naslov, mesto, znesek, datum podpisa) iz več excelovih izvirnikov in poskus združevanja podatkov bo v teku. Kako je to mogoče storiti, da bi odpravili dvojno delo in dvojne vnose informacij?
Ta komentar je moderator na spletnem mestu minimiziral
Dobim 'napaka izvajanja 1004', metoda kopiranja razreda delovnega lista ni uspela v vrstici, ki se glasi: Sheet.Copy After:=ThisWorkbook.Sheets(1). Uporabljam Excel 2010. Ali lahko pomagate? Hvala, - Susie
Ta komentar je moderator na spletnem mestu minimiziral
Hej, Susie, že nekaj časa se ukvarjam s tem problemom in dobivam isto napako. Preverite, ali je bil modul ustvarjen pod OSEBNO namesto v vašem aktivnem delovnem zvezku. Ko sem ustvaril modul pod pravim drevesom, je spodnja koda delovala čisto v redu. Sub GetSheets_xls() Dim Sheet As Worksheet Pot = "C:\Users\yournamehere\Desktop\Testingfolder\" Ime datoteke = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=False Set Sheet = ActiveWorkbook.Sheets(1) Sheet.Copy After:=ThisWorkbook.Sheets(1) 'Naslednji list Delovni zvezki(ime datoteke).Zapri Ime datoteke = Dir() Loop End Sub Upam, da to pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala. Vaša koda je delovala dobro.
Ta komentar je moderator na spletnem mestu minimiziral
[quote]Dobim 'napaka izvajanja 1004', metoda kopiranja razreda delovnega lista ni uspela v vrstici, ki se glasi: Sheet.Copy After:=ThisWorkbook.Sheets(1). Uporabljam Excel 2010. Ali lahko pomagate? Hvala, - SusieAvtor Susie[/quote] Imel sem enako težavo, deluje, ko grem na ogled in razkrivanje "PERSONAL", zdi se, da ima težave z dostopom do tega makra, ko je glavni skrit.
Ta komentar je moderator na spletnem mestu minimiziral
Pojdite na ogled in razkrijte »OSEBNO« – zdi se, da ima težave pri izvajanju celotne kode, medtem ko je glavna skrit. Makro lahko naredite kot izviren za ta delovni zvezek, vendar bi morali vso stvar znova ustvariti vsakič, ko bi jo želeli uporabiti
Ta komentar je moderator na spletnem mestu minimiziral
Živjo! Najlepša hvala za to datoteko............. :roll: Lep pozdrav
Ta komentar je moderator na spletnem mestu minimiziral
Hej, odličen nasvet. Je skoraj vse kar sem želel. V kombiniranem delovnem zvezku bi rad, da ime delovnega lista vsebuje ime izvirnega delovnega zvezka, tako da vem, iz katerega delovnega zvezka prihajajo podatki. Podatki, ki jih združujem, so iz različnih arhivov. Iskati moram vnos, vendar ne vem, v katerem arhivu je. Tako bom z združevanjem vseh podatkov v eni datoteki omogočil iskanje po vseh arhivih hkrati. Ampak še vedno moram vedeti, v katerem arhivu je zapis. Henrik
Ta komentar je moderator na spletnem mestu minimiziral
Če želite, da koda vključuje ime datoteke, naredite to. Sub GetSheets() Dim temp As String Pot = "C:\Users\....\Desktop\Excel composi\" Ime datoteke = Dir(Path & "*.xlsx") Do While Filename "" Workbooks.Open Filename:= Pot & Ime datoteke, ReadOnly:=True temp = ActiveWorkbook.Name ActiveSheet.Name = temp ActiveWorkbook.Sheets(temp).Copy After:=ThisWorkbook.Sheets(1) Workbooks(Filename).Close Filename = Dir() Loop End Sub Opomba : to je za kopiranje samo prvega lista, lahko ga prilagodite tako, da naredi vse liste
Ta komentar je moderator na spletnem mestu minimiziral
Kako vključite več listov in kako določite drugo glavno datoteko, da prilepite vse liste.
Ta komentar je moderator na spletnem mestu minimiziral
To je res odlična rešitev. Hvala vam. Ena težava pa je, da ko jo izvedem takole, bo excel vprašal, ali želim shraniti spremembe pred zaprtjem (ker je bilo ime spremenjeno), in tega ne želim storiti za vsako datoteko (okoli 32 na izvedbo). Ali bi obstajal način za rešitev tega?
Ta komentar je moderator na spletnem mestu minimiziral
Tole je super :lol: mi je zelo pomagalo....
Ta komentar je moderator na spletnem mestu minimiziral
Hvala kolega, polepšal si mi dan s to zelo uporabno spletno stranjo... Pravzaprav sem želel tudi združiti iste podatke glave različnih listov v 1 glavni delovni list, KUTOOL za Excel mi je zelo pomagal.... Hvala še enkrat .... :)
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala za dragocene informacije. To res deluje. Koraki, navedeni v tem članku, so mi res olajšali delo. Hvala, Dinesh
Ta komentar je moderator na spletnem mestu minimiziral
hvala, ker delite svoje znanje
Ta komentar je moderator na spletnem mestu minimiziral
Kako pridobite, da posodobi spremembe iz izvirnega delovnega zvezka? Poskušam dobiti nacionalni povzetek, v katerem bo vsaka regija vnesla svoje podatke v svoje delovne zvezke in nato imela nacionalni povzetek, ki se posodobi iz tega? Želel bi, da bi to na začetku postavili za celo leto in ne bi delali za nazaj.
Ta komentar je moderator na spletnem mestu minimiziral
Ko združite delovne liste v en delovni zvezek, kako ga shranite. Nisem mogel shraniti, se imenuje Book1 in klikam na shrani ali shrani kot, vendar ne deluje. kakršni koli predlogi?
Ta komentar je moderator na spletnem mestu minimiziral
Sledil sem korakom v "Združi več delovnih zvezkov v en delovni zvezek z VBA" in kliknil "zaženi", nič se ni zgodilo. Ne poznam napak in ne vem, kako jih popraviti. Bi mi pomagali? naslednja je koda, ki jo vnesem v nov delovni zvezek. Hvala vam Sub GetSheets() Pot = "p:\download\macro\" Ime datoteke = Dir(Path & "*.xls") Do Medtem ko ime datoteke "" Workbooks. Odpri Filename:=Pot & Filename, ReadOnly:=True For Every Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Naslednji list Delovni zvezki(ime datoteke).Zapri Ime datoteke = Dir() Loop End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Spoštovani: Sledil sem korakom "Združi več delovnih zvezkov v en delovni zvezek z VBA", da sem nastavil naslednji modul, vendar se ni zgodilo nič. Bi mi pomagali najti težavo? hvala Sub GetSheets() Pot = "p:\download\macro\" Ime datoteke = Dir(Pot & "*.xls") Do Medtem ko ime datoteke "" Workbooks.Open Filename:=Poth & Filename, ReadOnly:=True For Every List v ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Naslednji list Delovni zvezki(ime datoteke).Zapri Ime datoteke = Dir() Loop End Sub
Ta komentar je moderator na spletnem mestu minimiziral
za novejše različice excela poskusite to. Svoj odprt delovni zvezek sem shranil kot katalog in vse datoteke so v c:\temp. Sub GetSheets() Pot = "c:\temp\" Ime datoteke = Dir(Path & "*.xls") Do Medtem ko ime datoteke "" Workbooks. Odpri Filename:=Poth & Filename, ReadOnly:=True For Every Sheet In ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Liste(1) Naslednji list Delovni zvezki(ime datoteke).Zapri Ime datoteke = Dir() Loop End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Poskusite to za novejše različice excela. Svoj delovni zvezek sem shranil kot katalog, vse datoteke so v c:\temp. Sub GetSheets() Pot = "c:\temp\" Ime datoteke = Dir(Path & "*.xls") Do Medtem ko ime datoteke "" Workbooks. Odpri Filename:=Poth & Filename, ReadOnly:=True For Every Sheet In ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Naslednji list Delovni zvezki(ime datoteke).Zapri Ime datoteke = Dir() Loop End Sub
Ta komentar je moderator na spletnem mestu minimiziral
[quote]Poskusite to za novejše različice excela. Svoj delovni zvezek sem shranil kot katalog, vse datoteke so v c:\temp. Sub GetSheets() Pot = "c:\temp\" Ime datoteke = Dir(Path & "*.xls") Do Medtem ko ime datoteke "" Workbooks. Odpri Filename:=Poth & Filename, ReadOnly:=True For Every Sheet In ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Naslednji list Delovni zvezki(ime datoteke).Zapri Ime datoteke = Dir() Loop End SubAvtor Dave[/quote] V zvezi s potjo vedno dobivam "ne morem dodeliti lastnosti samo za branje" ... Imate kakšno idejo?
Ta komentar je moderator na spletnem mestu minimiziral
jaz imam tudi to težavo. Ste ugotovili?
Ta komentar je moderator na spletnem mestu minimiziral
Nič še ... Nisem našel nobene rešitve ali je kdo predlagal popravek. oprosti ...
Ta komentar je moderator na spletnem mestu minimiziral
Jaz tudi. To je delovalo pred 6 meseci, zadnjič sem ga moral zagnati. Je že kdo našel rešitev? Če ste ga imeli že prej in zdaj ne bo delovalo, bi lahko bilo to povezano z Microsoftovo posodobitvijo? To je res priročno orodje za moja opravila in mi prihrani veliko časa. Kaj bi se lahko spremenilo, da bi Excel nenadoma začel prikazovati to sporočilo? Ker sem dokaj nov v VBA, nimam pojma, kje naj začnem analizirati logiko. Lep pozdrav, Greg. Glasgow, Škotska.
Ta komentar je moderator na spletnem mestu minimiziral
Zdi se, da je "Pot" zdaj rezervirana, zato uporabite katero koli drugo ime in zamenjajte "Pot", npr. "Moja pot".
Ta komentar je moderator na spletnem mestu minimiziral
Mogoče bi morali spremeniti ReadOnly:=True v ReadOnly:=False, naredil sem in bilo je koristno
Ta komentar je moderator na spletnem mestu minimiziral
Iskal sem nekaj v tej smeri, vendar sem želel komentirati. Ali ne mora biti ime datoteke Do While "" nekaj drugega kot ""? ali to narobe berem? Mogoče Ne, medtem ko NOT filename = "" Samo misel ...
Ta komentar je moderator na spletnem mestu minimiziral
Želim združiti vse liste v en list, kjer so naslovi skupni ... prosim za pomoč
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, poskusil sem uporabiti zgornje makre za združevanje nekaj datotek, na žalost ni rezultatov... mi lahko kdo pomaga, da se znebim ročnega združevanja datotek.
Ta komentar je moderator na spletnem mestu minimiziral
imam 112 Excelovih listov, ki jih želim dati na en list brez kopiranja in lepljenja. Prosim pomagajte mi.
Ta komentar je moderator na spletnem mestu minimiziral
Imam delovni zvezek, ki vsebuje približno 250 listov. Moram Cobaina v enem listu. prosim dajte mi rešitev
Ta komentar je moderator na spletnem mestu minimiziral
Preizkusite to...To sem dobil z drugega spletnega mesta, vendar se žal ne spomnim imena gospe, zato se opravičujem, ker je nisem omenil, moja slaba" Združite več WB-jev v Excelu: RESEMBER TO CHANGE MyPath = ! Sub Merge2MultiSheets( ) Dim wbDst kot delovni zvezek Dim wbSrc kot delovni zvezek Dim wsSrc kot delovni list Dim MyPath kot niz Dim strFilename Kot niz Application.DisplayAlerts = False Application.EnableEvents = False Application.ScreenUpdating = False MyPath = "\\MyPath..."c Nastavite wbDst = Workbooks.Add(xlWBATWorksheet) strFilename = Dir(MyPath & "\*.xls", vbNormal) Če je Len(strFilename) = 0 Nato Exit Sub Do Dokler 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
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, dodal sem kodo v modul. Excelovo knjigo poimenovali Masterfile. Kje v kodi naj dodam. Hvala vam
Ta komentar je moderator na spletnem mestu minimiziral
Nobena od teh mi ni delovala. Končno sem tega uspel. FYI Uporabljam 2010 'Opis: Združuje vse datoteke v mapi v glavno datoteko. Sub MergeFiles() Dim pot kot niz, ThisWB kot niz, lngFilecounter kot dolgo Dim wbDest kot delovni zvezek, shtDest kot delovni list, ws kot delovni list Dim ime datoteke kot niz, Wkb kot delovni zvezek Dim CopyRng kot obseg, cilj kot obseg Dim RowofCopySheet Kot IntegerShe 2 ' Vrstica za začetek na listih, ki jih kopirate iz ThisWB = ActiveWorkbook.Name path = "mypath....." ' Ne pozabite spremeniti te aplikacije.EnableEvents = False Application.ScreenUpdating = False Set shtDest = ActiveWorkbook .Sheets(1) Filename = Dir(path & "\*.xls", vbNormal) Če je Len(Filename) = 0, potem Exit Sub Do Dokler Filename = vbNullString If Not Filename = ThisWB Nato nastavite Wkb = Workbooks.Open(Filename: =pot & "\" & Ime datoteke) Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)) Nastavi cilj = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1) CopyRng.Copy Dest Wkb.Close False End Če Ime datoteke = Dir() Razpon zanke e("A1").Izberite Application.EnableEvents = True Application.ScreenUpdating = True MsgBox "Končano!" Končni sub
Ta komentar je moderator na spletnem mestu minimiziral
Kako to uredim tako, da se izvlečeni podatki vedno začnejo v zgornji vrstici? Če to kodo zaženem dvakrat, doda podatke na konec mojih prejšnjih podatkov (od prvega zagona makra).
Ta komentar je moderator na spletnem mestu minimiziral
Spremenite to vrstico: RowofCopySheet = 2 v RowofCopySheet = 1
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, imam več različnih map Excel (en list) z zaščito z geslom. želim konec dneva združiti vse podatke v eno glavno datoteko. Vsakič, ko moram vnesti geslo in odpreti datoteko ter kopirati prilepiti v glavno datoteko.. Prosim, pomagajte mi s kodo VBA za to.
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije