Bir dizindeki çalışma kitaplarını dolaşarak verileri Excel'deki bir ana sayfaya nasıl kopyalayabilirsiniz?
Diyelim ki bir klasörde birden fazla Excel çalışma kitabı var ve bu dosyaların tamamında belirli bir aralıktaki (örneğin, Sayfa1) verileri ana bir çalışma sayfasına kopyalamak için dolaşmanız gerekiyor. Bu kılavuz, bu süreci Excel'de kolaylaştırmak için ayrıntılı bir VBA çözümü sunar.
VBA kodu ile bir dizindeki çalışma kitaplarını dolaşma ve verileri ana sayfaya kopyalama
VBA kodu ile bir dizindeki dosyaları dolaşma ve verileri ana sayfaya kopyalama
Belirli bir klasördeki tüm çalışma kitaplarının Sayfa1 çalışma sayfalarındaki A1:D4 aralığından verileri kopyalamak ve bunları bir ana sayfaya yapıştırmak istiyorsanız, lütfen aşağıdaki adımları izleyin.
1. Ana çalışma sayfasını oluşturacağınız çalışma kitabında, Microsoft Visual Basic for Applications penceresini açmak için Alt + F11 tuşlarına basın.
2. Microsoft Visual Basic for Applications penceresinde, Ekle > Modül'e tıklayın. Ardından aşağıdaki VBA kodunu kod penceresine kopyalayın.
VBA kodu: Bir klasördeki dosyaları dolaşma ve verileri ana sayfaya kopyalama
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
Not:
3. Kodu çalıştırmak için F5 tuşuna basın.
4. Açılır Gözat penceresinde, dolaşacağınız dosyaları içeren klasörü seçin ve ardından Tamam düğmesine tıklayın. Ekran görüntüsüne bakın:
“Yeni Sayfa” adlı bir ana çalışma sayfası, mevcut çalışma kitabının sonuna eklenir. Ve seçilen klasördeki tüm Sayfa1’lerdeki A1:D4 aralığındaki veriler, çalışma sayfasının içine listelenir.
İlgili makaleler:
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi geliştirin ve daha önce hiç olmadığı kadar verimli olun. Kutools for Excel, üretkenliğinizi artırmak ve zamanınızı kaydetmek için300'den fazla gelişmiş özellik sunar. En çok ihtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Office'e sekmeli arayüz getirir ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Aynı pencerenin yeni sekmelerinde birden fazla belge açın ve oluşturun, yeni pencerelerde değil.
- Verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasını azaltır!