Cum să parcurgeți fișierele dintr-un director și să copiați datele într-o foaie principală în Excel?
Presupunând că există mai multe cărți de lucru Excel într-un dosar și doriți să parcurgeți toate aceste fișiere Excel și să copiați datele dintr-un interval specificat de foi de lucru cu același nume într-o foaie de lucru principală în Excel, ce puteți face? Acest articol introduce o metodă de realizare în detalii.
Buclați fișierele dintr-un director și copiați datele într-o foaie principală cu cod VBA
Buclați fișierele dintr-un director și copiați datele într-o foaie principală cu cod VBA
Dacă doriți să copiați datele specificate în intervalul A1: D4 din toată foaia 1 a registrelor de lucru dintr-un anumit folder într-o foaie principală, vă rugăm să procedați după cum urmează.
1. În registrul de lucru veți crea o foaie de lucru principală, apăsați pe Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.
2. În Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Module. Apoi copiați mai jos codul VBA în fereastra codului.
Cod VBA: parcurgeți fișierele dintr-un folder și copiați datele într-o foaie principală
Sub Merge2MultiSheets()
Dim xRg As Range
Dim xSelItem As Variant
Dim xFileDlg As FileDialog
Dim xFileName, xSheetName, xRgStr As String
Dim xBook, xWorkBook As Workbook
Dim xSheet As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
xSheetName = "Sheet1"
xRgStr = "A1:D4"
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
With xFileDlg
If .Show = -1 Then
xSelItem = .SelectedItems.Item(1)
Set xWorkBook = ThisWorkbook
Set xSheet = xWorkBook.Sheets("New Sheet")
If xSheet Is Nothing Then
xWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"
Set xSheet = xWorkBook.Sheets("New Sheet")
End If
xFileName = Dir(xSelItem & "\*.xlsx", vbNormal)
If xFileName = "" Then Exit Sub
Do Until xFileName = ""
Set xBook = Workbooks.Open(xSelItem & "\" & xFileName)
Set xRg = xBook.Worksheets(xSheetName).Range(xRgStr)
xRg.Copy xSheet.Range("A65536").End(xlUp).Offset(1, 0)
xFileName = Dir()
xBook.Close
Loop
End If
End With
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
notițe:
3. apasă pe F5 tasta pentru a rula codul.
4. În deschidere Naviga fereastra, selectați folderul care conține fișierele pe care le veți parcurge, apoi faceți clic pe OK buton. Vedeți captura de ecran:
Apoi se creează o foaie de lucru principală numită „Foaie nouă” la sfârșitul registrului de lucru curent. Și datele din intervalul A1: D4 din toate Sheet1 din folderul selectat sunt listate în foaia de lucru.
Legate de articole:
Cele mai bune instrumente de productivitate de birou
Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp. Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...
Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară
- Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
- Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ferestrele noi.
- Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!