Kopieren Sie ein Blatt aus jeder Arbeitsmappe in Ihre Arbeitsmappe in einem Ordner mit VBA in Microsoft Excel
ein Blatt aus jeder Arbeitsmappe in Ihre Arbeitsmappe in einem Ordner * Das Makro kopiert einen Teil des ersten Arbeitsblatts jeder Datei im Ordner C: \ Data in das erste Arbeitsblatt Ihrer Arbeitsmappe.
-
Das erste Makro kopiert normal und das zweite Makro kopiert die Werte.
Das erste Blatt jeder Arbeitsmappe wird in die Arbeitsmappe kopiert, 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 Then Set basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Set 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 Sub (TestFile4_values) müssen Sie ungeschützte Arbeitsblätter haben oder diese 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 Then Set basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Set 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