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

Hur kombinerar jag flera arbetsböcker i en huvudarbetsbok i Excel?

Har du någonsin fastnat när du måste kombinera flera arbetsböcker till en huvudarbetsbok i Excel? Det mest hemska är att arbetsböckerna du behöver kombinera innehåller flera kalkylblad. Och hur man bara kombinerar de angivna kalkylbladen i flera arbetsböcker i en arbetsbok? Denna handledning visar flera användbara metoder som hjälper dig att lösa problemet steg för steg.


Kombinera flera arbetsböcker i en arbetsbok med funktionen Flytta eller Kopiera

Om det bara finns ett par arbetsböcker som behöver kombineras kan du använda kommandot Flytta eller Kopiera för att manuellt flytta eller kopiera kalkylblad från den ursprungliga arbetsboken till huvudarbetsboken.

1. Öppna arbetsböckerna som du kommer att slå samman i en huvudarbetsbok.

2. Välj kalkylblad i den ursprungliga arbetsboken som du ska flytta eller kopiera till huvudarbetsboken.

Anmärkningar:

1). Du kan välja flera icke-intilliggande kalkylblad genom att hålla ned ctrl och klicka på arkflikarna en efter en.

2). För att välja flera intilliggande kalkylblad, klicka på den första arkfliken, håll ned shift och klicka sedan på den sista arkfliken för att markera dem alla.

3). Du kan högerklicka på valfri arkflik, klicka på Välj alla skivor från snabbmenyn för att välja alla kalkylblad i arbetsboken samtidigt.

3. När du har valt de nödvändiga kalkylarken, högerklickar du på arkfliken och klickar sedan på Flytta eller Kopiera från snabbmenyn. Se skärmdump:

4. Sedan Flytta eller Kopiera dialogrutan dyker upp i Att boka rullgardinsmeny, välj den huvudarbetsbok du ska flytta eller kopiera kalkylblad till. Välj flytta för att avsluta i Före ark kryssa i rutan Skapa en kopia och slutligen klicka på OK knapp.

Då kan du se kalkylblad i två arbetsböcker kombinerade till en. Upprepa stegen ovan för att flytta kalkylblad från andra arbetsböcker till huvudarbetsboken.


Kombinera flera arbetsböcker eller specifika arbetsböcker till en huvudarbetsbok med VBA

Om det finns flera arbetsböcker måste slås samman till en, kan du använda följande VBA-koder för att snabbt uppnå det. Gör så här.

1. Lägg alla arbetsböcker som du vill kombinera i en under samma katalog.

2. Starta en Excel-fil (den här arbetsboken blir huvudarbetsboken).

3. tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, kopiera sedan VBA-koden nedan till modulfönstret.

VBA-kod 1: Slå ihop flera Excel-arbetsböcker till en

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
	

Anmärkningar:

1. Ovanstående VBA-kod behåller arknamnen på de ursprungliga arbetsböckerna efter sammanslagningen.

2. Om du vill skilja på vilka kalkylblad i huvudarbetsboken som kommer från var efter sammanslagning, använd VBA-kod 2 nedan.

3. Om du bara vill kombinera specificerade kalkylblad för arbetsböckerna i en huvudarbetsbok kan nedanstående VBA-kod 3 hjälpa till.

I VBA-koder, “C: \ Användare \ DT168 \ Desktop \ KTE \”Är mappvägen. I VBA-kod 3, "Sheet1, Sheet3"är de angivna kalkylbladen för arbetsböckerna som du kommer att kombinera till en huvudarbetsbok. Du kan ändra dem baserat på dina behov.

VBA-kod 2: Slå samman arbetsböcker till en (varje kalkylblad kommer att namnges med prefix för sitt ursprungliga filnamn):

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

VBA-kod 3: Sammanfoga angivna arbetsblad för arbetsböcker till en huvudarbetsbok:

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. tryck på F5 för att köra koden. Sedan kombineras alla kalkylblad eller specificerade kalkylblad för arbetsböckerna i den specifika mappen till en huvudarbetsbok samtidigt.


Kombinera enkelt flera arbetsböcker eller specifika arbetsböcker till en arbetsbok

Lyckligtvis, den Kombinera arbetsbokens verktyg för Kutools för Excel gör det mycket lättare att slå samman flera arbetsböcker till en. Låt oss se hur vi får den här funktionen att kombinera flera arbetsböcker.

Innan du ansöker Kutools för ExcelBer ladda ner och installera det först.

1. Skapa en ny arbetsbok och klicka Kutools Plus > Kombinera. Sedan dyker en dialog upp för att påminna dig om att alla kombinerade arbetsböcker ska sparas och funktionen inte kan tillämpas på skyddade arbetsböcker, klicka på OK knapp.

2. I Kombinera arbetsblad guiden, välj Kombinera flera kalkylblad från arbetsböcker till en arbetsbok och klicka sedan på Nästa knapp. Se skärmdump:

3. I Kombinera arbetsblad - Steg 2 av 3 dialogrutan, klicka på Lägg till > Fil or mapp för att lägga till Excel-filer som du kommer att slå samman i en. När du har lagt till Excel-filer klickar du på Finish och välj en mapp för att spara huvudarbetsboken. Se skärmdump:

Nu slås alla arbetsböcker samman till en.

Jämfört med ovanstående två metoder, Kutools för Excel har följande fördelar:

  • 1) Alla arbetsböcker och kalkylblad listas i dialogrutan.
  • 2) För kalkylblad som du vill utesluta från sammanslagning, avmarkera det bara.
  • 3) Tomma kalkylblad utesluts automatiskt.
  • 4) Det ursprungliga filnamnet läggs till som prefix till arknamnet efter sammanslagning.
  • För fler funktioner för den här funktionen, besök här.

  Om du vill ha en gratis testversion (30 dagar) av det här verktyget, klicka för att ladda ner den, och gå sedan till för att tillämpa operationen enligt ovanstående steg.


Kutools för Excel - Hjälper dig att alltid slutföra arbetet före tiden, ha mer tid att njuta av livet
Kommer du ofta att spela inhämtning med arbete, brist på tid att spendera för dig själv och familjen?  Kutools för Excel kan hjälpa dig att hantera 80% Excel-pussel och förbättra 80% arbetseffektivitet, ge dig mer tid att ta hand om familjen och njuta av livet.
300 avancerade verktyg för 1500 arbetsscenarier, gör ditt jobb så mycket enklare än någonsin.
Behöver inte längre memorera formler och VBA-koder, ge din hjärna vila från och med nu.
Komplicerade och upprepade operationer kan göras en engångsbehandling på några sekunder.
Minska tusentals tangentbord och musoperationer varje dag, säg adjö till yrkessjukdomar nu.
Bli en Excel-expert på tre minuter, hjälp dig snabbt att bli erkänd och en löneförhöjning.
110,000 300 mycket effektiva människor och XNUMX+ världsberömda företags val.
Gör din $ 39.0 värt mer än $ 4000.0 utbildning av andra.
Fullversion gratis provperiod 30 dagar. 60-dagars pengarna tillbaka-garanti utan anledning.

Sortera kommentarer efter
Kommentarer (146)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej snälla hjälp mig till detta nedanstående tillstånd. Jag har olika arbetsbok som har mer än 5 kalkylblad var och en på olika vägar. Jag måste konsolidera alla kalkylblad från olika arbetsbok till en enda arbetsbok. Kan någon hjälpa mig att lösa med macro.TIA!
Denna kommentar minimerades av moderatoren på webbplatsen
[quote]Hej snälla hjälp mig till detta nedanstående tillstånd. Jag har olika arbetsbok som har mer än 5 kalkylblad var och en på olika vägar. Jag måste konsolidera alla kalkylblad från olika arbetsbok till en enda arbetsbok. Kan någon hjälpa mig att lösa med macro.TIA!Av A. Karthi[/quote] Gå till ladda ner och installera Kutools för Excel, du kan snabbt få det gjort. Men om du vill använda en VBA kan det vara för komplicerat. För mer information om hur du får det gjort, besök:http://www.extendoffice.com/product/kutools-for-excel/excel-combine-worksheets-into-one.html
Denna kommentar minimerades av moderatoren på webbplatsen
KUTOOLS Fantastisk lösning. Jag behöver ytterligare en hjälp när jag skapar en huvudarbetsbok, då ändras cellfärgen på arbetsbladet från det ursprungliga arbetsbladet. Hur kan jag behålla det som originalkalkylblad.
Denna kommentar minimerades av moderatoren på webbplatsen
Vårt kontor har kopiering av data, (dvs. namn, adress, stad, belopp, datum undertecknad) från flera excel-original och att försöka kombinera data kommer att vara ett arbete som pågår. Hur kan det göras för att eliminera dubbelarbete och dubbla informationsinmatningar?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag får ett 'runtime error 1004', Copy Method of Worksheet class misslyckades på raden som lyder: Sheet.Copy After:=ThisWorkbook.Sheets(1). Jag använder Excel 2010. Kan du hjälpa? Tack, - Susie
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Susie, jag har själv jobbat med det här problemet ett tag nu och får samma fel. Kontrollera om modulen skapades under PERSONLIG istället för din aktiva arbetsbok. När jag väl skapade modulen under rätt träd fungerade koden nedan bra. Sub GetSheets_xls() Dim Sheet As Worksheet Path = "C:\Users\yournamehere\Desktop\Testingfolder\" Filnamn = Dir(Path & "*.xls") Gör medan Filnamn "" Workbooks.Open Filename:=Sökväg & Filnamn, ReadOnly:=False Set Sheet = ActiveWorkbook.Sheets(1) Sheet.Copy After:=ThisWorkbook.Sheets(1) 'Next Sheet Workbooks(Filename).Stäng Filnamn = Dir() Loop End Sub Hoppas detta hjälper!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket. Din kod fungerade bra.
Denna kommentar minimerades av moderatoren på webbplatsen
[quote]Jag får ett 'runtime error 1004', Copy Method of Worksheet-klassen misslyckades på raden som lyder: Sheet.Copy After:=ThisWorkbook.Sheets(1). Jag använder Excel 2010. Kan du hjälpa? Tack, - SusieAv Susie[/quote] Hade samma problem, det fungerar när jag går för att visa och visa "PERSONLIG", det verkar ha problem med att komma åt detta makro med mastern dold.
Denna kommentar minimerades av moderatoren på webbplatsen
Gå till visa och visa "PERSONLIG" - det verkar ha problem att exekvera hela koden medan mastern är dold. Du kan göra makrot inbyggt i den arbetsboken, men du måste återskapa det hela varje gång du vill använda det
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Tack så mycket för den här filen............. :roll: Med vänlig hälsning
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Bra tips. Gjorde nästan allt jag ville. I combinde-arbetsboken hade jag älskat att kalkylbladets namn skulle innehålla namnet på den ursprungliga arbetsboken, så jag vet vilken arbetsbok data kommer ifrån. Datan jag kombinerar är från olika arkiv. Jag måste söka efter en post, men vet inte vilket arkiv den finns i. Så genom att kombinera all data i en fil kommer jag att göra det möjligt för mig att söka i alla arkiv på en gång. Men jag behöver fortfarande veta vilket arkiv inlägget finns i. Henrik
Denna kommentar minimerades av moderatoren på webbplatsen
För att koden ska inkludera filnamnet gör bara detta. Sub GetSheets() Dim temp As String Path = "C:\Users\....\Desktop\Excel combine\" Filnamn = Dir(Path & "*.xlsx") Gör medan Filnamn "" Workbooks.Open Filename:= Sökväg och filnamn, ReadOnly:=True temp = ActiveWorkbook.Name ActiveSheet.Name = temp ActiveWorkbook.Sheets(temp).Copy After:=ThisWorkbook.Sheets(1) Workbooks(Filename).Stäng Filnamn = Dir() Loop End Sub Note : detta är för att bara kopiera det första arket, det kan tvåkas för att göra alla ark
Denna kommentar minimerades av moderatoren på webbplatsen
Hur infogar du fler ark och hur anger du en annan huvudfil för att klistra in alla ark.
Denna kommentar minimerades av moderatoren på webbplatsen
Det är verkligen en jättebra lösning. tack. Ett problem dock, när jag kör det så här kommer excel att fråga om jag vill spara ändringar innan jag stänger (sedan namnet ändrades), och jag vill inte göra det för varje fil (cirka 32 per körning). Skulle det finnas något sätt att lösa detta?
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är fantastiskt :lol: hjälpte mig mycket....
Denna kommentar minimerades av moderatoren på webbplatsen
Tack kompis, du gjorde min dag från denna mycket hjälpsamma webbplats... Jag ville faktiskt också kombinera samma rubrikdata för olika ark till ett huvudkalkylblad, KUTOOL för Excel hjälpte mig mycket.... Tack än en gång .... :)
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket för den värdefulla informationen. Det här fungerar verkligen. Stegen som anges i den här artikeln gjorde verkligen mitt jobb enklare. Tack Dinesh
Denna kommentar minimerades av moderatoren på webbplatsen
tack för att du delar med dig av din kunskap
Denna kommentar minimerades av moderatoren på webbplatsen
Hur får du det att uppdatera ändringarna från den ursprungliga arbetsboken? Jag försöker få en nationell sammanfattning som kommer att få varje region att mata in sina data i sina egna arbetsböcker och sedan ha den nationella sammanfattningen som uppdateras från detta? Jag skulle vilja ha den här inställningen för hela året i början och inte arbeta i efterhand.
Denna kommentar minimerades av moderatoren på webbplatsen
Efter att ha kombinerat kalkylbladen i en arbetsbok, hur sparar du den. Jag kunde inte spara den heter Bok1 och jag klickar på spara eller spara som men fungerar inte. några förslag?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag följde stegen i "Kombinera flera arbetsböcker till en arbetsbok med VBA" och klicka på "kör", ingenting hände. Jag är inte medveten om fel och inte säker på hur jag ska korrigera. Skulle du hjälpa mig? följande är koden jag matat in i en ny arbetsbok. Tack Sub GetSheets() Path = "p:\download\macro\" Filnamn = Dir(Path & "*.xls") Gör medan Filnamn "" Workbooks.Open Filename:=Sökväg & Filnamn, ReadOnly:=True For Every Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Stäng Filnamn = Dir() Loop End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Dear Sir/Fru: Jag följde stegen "Kombinera flera arbetsböcker till en arbetsbok med VBA" för att ställa in följande modul, men ingenting hände. Kan du hjälpa mig att hitta problemet? tack Sub GetSheets() Path = "p:\download\macro\" Filnamn = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Every Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Stäng Filnamn = Dir() Loop End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
för nyare versioner av excel, prova detta. Jag sparade min öppna arbetsbok som katalog, och alla filer är i c:\temp. Sub GetSheets() Path = "c:\temp\" Filnamn = Dir(Sökväg & "*.xls") Gör medan Filnamn "" Workbooks.Öppna Filnamn:=Sökväg och filnamn, ReadOnly:=True för varje blad i ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filname).Stäng Filnamn = Dir() Loop End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Prova detta för nyare versioner av excel. Jag sparade min arbetsbok som katalog, alla filer är i c:\temp. Sub GetSheets() Path = "c:\temp\" Filnamn = Dir(Sökväg & "*.xls") Gör medan Filnamn "" Workbooks.Öppna Filnamn:=Sökväg och filnamn, ReadOnly:=True för varje blad i ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filname).Stäng Filnamn = Dir() Loop End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
[quote]Prova detta för nyare versioner av excel. Jag sparade min arbetsbok som katalog, alla filer finns i c:\temp. Sub GetSheets() Path = "c:\temp\" Filnamn = Dir(Sökväg & "*.xls") Gör medan Filnamn "" Workbooks.Öppna Filnamn:=Sökväg och filnamn, ReadOnly:=True för varje blad i ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filname).Stäng Filnamn = Dir() Loop End SubAv Dave[/quote] Jag får hela tiden "kan inte tilldela till skrivskyddad egendom" angående sökvägen... Någon idé?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har också ett problem. Fick du reda på det?
Denna kommentar minimerades av moderatoren på webbplatsen
Inget än... Har inte hittat någon lösning eller fått någon som föreslår en lösning. Förlåt...
Denna kommentar minimerades av moderatoren på webbplatsen
Jag med. Det här fungerade för 6 månader sedan, sista gången jag var tvungen att köra det. Har någon hittat lösningen än? Om du hade det igång tidigare och nu inte fungerar kan det ha att göra med en uppdatering från Microsoft? Detta är verkligen ett praktiskt verktyg för mina uppgifter och sparar mig massor av tid. Vad kunde ha förändrats som skulle få Excel att börja visa det här meddelandet helt plötsligt? Eftersom jag är ganska ny på VBA har jag ingen aning om var jag ska börja analysera logiken. Vänliga hälsningar, Greg. Glasgow, Skottland.
Denna kommentar minimerades av moderatoren på webbplatsen
Det verkar som att "Path" nu är reserverad så använd bara vilket annat namn som helst och ersätt "Path", t.ex. "Mypath".
Denna kommentar minimerades av moderatoren på webbplatsen
Du kanske borde ändra ReadOnly:=True to ReadOnly:=False, det har jag gjort och det var till hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
Jag letade efter något i den här stilen men ville kommentera. Behöver inte Do While-filnamnet "" vara något annat än ""? eller läser jag fel? Kanske gör medan INTE filnamn = "" Bara en tanke...
Denna kommentar minimerades av moderatoren på webbplatsen
Jag vill kombinera alla ark till ett ark där rubrikerna är vanliga...snälla hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag försökte använda ovanstående makron för att sortera några filer, tyvärr inga resultat... kan någon hjälpa mig att bli av med manuell sortering av filer.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har 112 excelark som jag vill lägga i ett enda ark utan att kopiera och klistra in. Snälla hjälp mig.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har en arbetsbok som innehåller cirka 250 ark. Jag behöver Cobain i ett ark. snälla ge mig en lösning
Denna kommentar minimerades av moderatoren på webbplatsen
Testa det här...Jag fick det här från en annan sida men tyvärr kommer jag inte ihåg damens namn så jag ber om ursäkt för att jag inte nämnde henne, my bad" Kombinera flera WB:s i Excel: KOM IHÅG ATT ÄNDRA 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 = Falskt Application.EnableEvents = Falskt Application.ScreenUpdating = Falskt 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.Works). Ta bort Application.DisplayAlerts = True Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag la till koden i en modul. Döpt till Excel-boken Masterfile. Var i koden lägger jag till. tack
Denna kommentar minimerades av moderatoren på webbplatsen
Ingen av dessa fungerade för mig, jag fick äntligen den här att fungera. FYI Jag använder 2010 'Beskrivning: Kombinerar alla filer i en mapp till en huvudfil. Sub MergeFiles() Dim sökväg Som String, ThisWB As String, lngFilecounter As Long Dim wbDest As Worksheet, shtDest As Worksheet, ws As Worksheet Dim Filename As String, Wkb As Workbook Dim CopyRng As Range, Dest As Range Dim RowofCopySheet As Integer RowofCopySheet 2 ' Rad att börja på i arken du kopierar från ThisWB = ActiveWorkbook.Name path = "mypath....." ' Glöm inte att ändra denna Application.EnableEvents = False Application.ScreenUpdating = False Set shtDest = ActiveWorkbook .Sheets(1) Filnamn = Dir(sökväg & "\*.xls", vbNormal) Om Len(Filnamn) = 0 Avsluta Sub Do Tills Filnamn = vbNullString Om inte Filnamn = ThisWB Ställ sedan in Wkb = Workbooks.Open(Filnamn: =sökväg & "\" & filnamn) Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)) Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1) CopyRng.Copy Dest Wkb.Close False End If Filename = Dir() Loop Rang e("A1").Välj Application.EnableEvents = True Application.ScreenUpdating = True MsgBox "Klar!" Avsluta Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hur redigerar jag detta så att data som hämtas alltid börjar på den översta raden? Om jag kör den här koden två gånger lägger den till data i slutet av mina tidigare data (från den första körningen av makrot).
Denna kommentar minimerades av moderatoren på webbplatsen
Ändra denna rad: RowofCopySheet = 2 till RowofCopySheet = 1
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag har flera Excel-filer (ett ark) olika mappar med lösenordsskydd. Jag vill i slutet av dagen kombinera all data till en huvudfil. Varje gång jag måste ange lösenord och öppna filen och kopiera klistra in till masterfilen.. Vänligen hjälp mig med VBA-kod för detta tack.
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser