Copie uma planilha de cada pasta de trabalho em sua pasta de trabalho em uma pasta usando o VBA no Microsoft Excel

Anonim
  • A macro copiará uma parte da primeira planilha de cada arquivo que está na pasta C: \ Data para a primeira planilha de sua pasta de trabalho.
  • A primeira macro faz uma cópia normal e a segunda macro copia os valores.

Ele copiará a primeira planilha de cada pasta de trabalho para a pasta de trabalho onde o código está.
O nome da planilha é o nome da pasta de trabalho.

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

Para este sub (TestFile4_values) você deve ter planilhas desprotegidas, ou desprotegê-las no código.

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