Kopieren Sie ein Blatt aus jeder Arbeitsmappe in Ihre Arbeitsmappe in einem Ordner mit VBA in Microsoft Excel

Anonim
  • Das Makro kopiert einen Teil des ersten Arbeitsblatts jeder Datei, die sich im Ordner C:\Data befindet, in das erste Arbeitsblatt Ihrer Arbeitsmappe.
  • Das erste Makro macht eine normale Kopie und das zweite Makro kopiert die Werte.

Es kopiert das erste Blatt jeder Arbeitsmappe in die Arbeitsmappe, in der sich der Code befindet.
Der Blattname ist der Name der Arbeitsmappe.

Sub CopySheet() Dim basebook As Workbook Dim mybook As Workbook Dim i As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Dann setze basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Setze mybook = Workbooks.Open(.FoundFiles(i)) mybook.Worksheets(1).Copy after:= _ basebook.Sheets(basebook.Sheets.Count) ActiveSheet.Name = mybook.Name mybook.Close Next i End If End With Application.ScreenUpdating = True End Sub

Für dieses Unterelement (TestFile4_values) müssen Sie über ungeschützte Arbeitsblätter verfügen oder den Schutz im Code aufheben.

Sub CopySheetValues() Dim basebook As Workbook Dim mybook As Workbook Dim i As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Dann setze basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Setze mybook = Workbooks.Open(.FoundFiles(i)) mybook.Worksheets(1).Copy after:= _ basebook.Sheets(basebook.Sheets.Count) ActiveSheet.Name = mybook.Name With ActiveSheet.UsedRange .Value = .Value End With mybook.Close Next i End If End With Application.ScreenUpdating = True End Sub