/ / VBA loop através de pastas de trabalho + copiar e colar - excel, vba, loops, copiar e colar

Loop de VBA através de pastas de trabalho + copiar e colar - excel, vba, loops, copiar e colar

Gostaria de pegar dados de diferentes pastas de trabalho (que têm a mesma estrutura) e criar um loop para copiar e colar os dados recuperados na pasta de trabalho ativa. Eu tentei isso, mas não funciona.

Sub loopMacro()
Dim Wb1 As Workbook, Wb2 As Workbook, Wb3 As Workbook
Dim MainBook As Workbook

"Open all workbooks:
Set Wb1 = Workbooks.Open("D:VBAfile1.xlsx")
Set Wb2 = Workbooks.Open("D:VBAfile2.xlsx")
Set Wb3 = Workbooks.Open("D:VBAfile3.xlsx")
Set MainBook = ThisWorkbook

For i = 1 To 3
For j = A To C
WB(i).Sheets("sheet1").Range("E4").Copy
MainBook.Sheets("DATA").Range(j & "1").PasteSpecial
WB(i).Sheets("sheet1").Range("E5").Copy
MainBook.Sheets("DATA").Range(j & "2").PasteSpecial
Next j
Next i

MainBook.Save
MainBook.Close End Sub

Basicamente, a macro deve pegar os dados defolha 1 - células E4 e E5 de Wb1, Wb2, Wb3 ... e imprime os dados de Wb1 na pasta de trabalho ativa (células A1 e A2), os dados de Wb2 nas células B1 e B2, os dados de Wb3 nas células C1 e C2. Alguém pode ajudar?

Respostas:

0 para resposta № 1

Seu problema é que WB (i) não resulta em Wb1, Wb2 etc.

Substitua o for i com

For Each wb In Array(Wb1, Wb2, Wb3)

e então tudo wb(i) com wb