Πώς να κάνετε βρόχο μέσω αρχείων σε έναν κατάλογο και να αντιγράψετε δεδομένα σε ένα κύριο φύλλο στο Excel;
Ας υποθέσουμε ότι υπάρχουν πολλά βιβλία εργασίας του Excel σε ένα φάκελο και θέλετε να κάνετε εναλλαγή σε όλα αυτά τα αρχεία Excel και να αντιγράψετε δεδομένα από καθορισμένο εύρος φύλλων εργασίας με το ίδιο όνομα σε ένα κύριο φύλλο εργασίας στο Excel, τι μπορείτε να κάνετε; Αυτό το άρθρο εισάγει μια μέθοδο για την επίτευξή της με λεπτομέρειες.
Περάστε τα αρχεία σε έναν κατάλογο και αντιγράψτε τα δεδομένα σε ένα κύριο φύλλο με τον κώδικα VBA
Περάστε τα αρχεία σε έναν κατάλογο και αντιγράψτε τα δεδομένα σε ένα κύριο φύλλο με τον κώδικα VBA
Εάν θέλετε να αντιγράψετε συγκεκριμένα δεδομένα στην περιοχή A1: D4 από όλα τα φύλλα1 των βιβλίων εργασίας σε έναν συγκεκριμένο φάκελο σε ένα κύριο φύλλο, κάντε τα εξής.
1. Στο βιβλίο εργασίας θα δημιουργήσετε ένα κύριο φύλλο εργασίας, πατήστε το άλλος + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.
2. Στο Microsoft Visual Basic για εφαρμογές παράθυρο, κάντε κλικ στην επιλογή Κύριο θέμα > Μονάδα μέτρησης. Στη συνέχεια, αντιγράψτε κάτω από τον κώδικα VBA στο παράθυρο κώδικα.
Κωδικός VBA: μεταβείτε σε αρχεία σε ένα φάκελο και αντιγράψτε δεδομένα σε ένα κύριο φύλλο
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
Note:
3. Πάτα το F5 κλειδί για την εκτέλεση του κώδικα.
4. Στο άνοιγμα Αναζήτηση παρακαλώ, επιλέξτε το φάκελο που περιέχει τα αρχεία στα οποία θα περάσετε και, στη συνέχεια, κάντε κλικ στο OK κουμπί. Δείτε το στιγμιότυπο οθόνης:
Στη συνέχεια, δημιουργείται ένα κύριο φύλλο εργασίας με το όνομα "Νέο φύλλο" στο τέλος του τρέχοντος βιβλίου εργασίας. Και τα δεδομένα στο εύρος A1: D4 όλων των φύλλων 1 στον επιλεγμένο φάκελο παρατίθενται στο φύλλο εργασίας.
Σχετικά άρθρα:
Τα καλύτερα εργαλεία παραγωγικότητας γραφείου
Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου. Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...
Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη
- Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
- Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
- Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!