excel - como copiar todas as planilhas de uma pasta de trabalho para outra

excel - como copiar todas as planilhas de uma pasta de trabalho para outra

eu tenho uma pasta de trabalho chamada "teste". Quero copiar todas as planilhas de uma pasta de trabalho chamada "estimativa" para testar. não sei como criar a lista de planilhas em "estimativa" que podem ser copiadas para "teste". Existe uma maneira de fazer isso em VBA?

Responder1

Considerar:

Sub dural()
   Dim b1 As Workbook, b2 As Workbook
   Dim sh As Worksheet

   Workbooks.Open Filename:="C:\TestFolder\test.xls"
   Set b1 = ActiveWorkbook
   Workbooks.Open Filename:="C:\TestFolder\estimate.xls"
   Set b2 = ActiveWorkbook

   For Each sh In b2.Sheets
      sh.Copy after:=b1.Sheets(b1.Sheets.Count)
   Next sh
End Sub

Responder2

Isto irá listá-los

Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wsList As Worksheet
Dim numSheets As Integer
numSheets = wbEstimate.Sheets.Count
Worksheets.Add(After:=Worksheets(numSheets)).Name = "list"
Set wsList = Worksheets("list")
Dim i As Integer
i = 1

For Each Sheet In wbEstimate.Worksheets
    wsList.Cells(i, 1) = Sheet.Name
    i = i + 1
Next
End Sub

E isso deve copiá-losse ambos estiverem abertos

Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wbTest As Workbook
Set wbTest = Workbooks("test.xlsx")

For Each Sheet In wbEstimate.Sheets
    Sheet.Copy after:=wbTest.Sheets(wbTest.Sheets.Count)
Next
End Sub

E se você precisar abrir o teste antes de copiar as planilhas, faça assim -

Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wbTest As Workbook
Set wbTest = Workbooks.Open("C:\Users\path\to\test.xlsx")

For Each Sheet In wbEstimate.Sheets
    Sheet.Copy after:=wbTest.Sheets(wbTest.Sheets.Count)
Next
End Sub

informação relacionada