Bom dia,
Galera, estou com 1397 planilhas e preciso juntar todas em uma só, já procurei algumas macros, mas sempre aparecem alguns erros ou simplesmente não acontecem nada, tentei criando um .bat (type *.xlsx >> "nomedoarquivo".xlsx), mas só copia os dados da primeira planilha. Todas as planilhas tem o mesmo layout.
Tentei usar o macro abaixo e simplesmente não fez nada:
Sub Importar_XLS()
Dim sPath As String, sName As String, fName As String
Dim r As Long, rTemp As Long
Dim shPadrao As Worksheet
'Para a macro executar mais rápido!
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
'A planilha onde serão colados os dados
Set shPadrao = Sheets("Planilha1")
'O caminho onde as planilhas que serão lidas estao
sPath = "C:teste"
'Descubro o nome do primeiro arquivo a ser aberto
sName = Dir(sPath & "*.xl*")
'Faço o loop que le todos os arquivos
Do While sName <> ""
'Acha a ultima linha utilizada na planilha onde serao colados os dados
r = shPadrao.Cells(Rows.Count, "A").End(xlUp).Row - 1
'O caminho + o nome do arquivo a ser aberto
fName = sPath & sName
'Abro o workbook a ser lido
Workbooks.Open Filename:=fName, UpdateLinks:=False
'Descubro sua quantas linhas ele possui
rTemp = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
'Colo na planilha principal
ActiveWorkbook.ActiveSheet.Range("A1:AO" & rTemp).Copy shPadrao.Range("A" & r + 1)
'Fecho o arquivo já lido
ActiveWorkbook.Close SaveChanges:=False
ScapeB:
'Atualizo a variavel com funcao DIR() que acha o proximo arquivo nao processado
sName = Dir()
Loop
On Error GoTo 0
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Postado : 29/08/2016 8:58 am