Como se pode “dividir” um arquivo Excel (.xlsx) que contém múltiplas planilhas em folhas separadas [n] .xlsx?

14

Eu acho que o título diz tudo para essa pergunta, mas para elaborar um pouco mais:

Eu tenho um arquivo .xlsx que contém algumas dúzias de folhas. Eu quero produzir todas essas folhas como arquivos .xlsx separados. A nomenclatura automática deles não é necessária. O excel tem uma função para exportar folhas para um arquivo separado?

    
por jhstuckey 06.03.2013 / 22:48

3 respostas

16

Não é uma funcionalidade incorporada.

No entanto, se você executar esse código, ele deverá executar o trabalho.

Sub SaveSheets()
    Dim strPath As String
    Dim ws As Worksheet

    Application.ScreenUpdating = False

    strPath = ActiveWorkbook.Path & "\"
    For Each ws In ThisWorkbook.Sheets
        ws.Copy
        'Use this line if you want to break any links:
        BreakLinks Workbooks(Workbooks.Count)
        Workbooks(Workbooks.Count).Close True, strPath & ws.Name & ".xlsx"
    Next

    Application.ScreenUpdating = True
End Sub

Sub BreakLinks(wb As Workbook)
    Dim lnk As Variant
    For Each lnk In wb.LinkSources(xlExcelLinks)
        wb.BreakLink lnk, xlLinkTypeExcelLinks
    Next
End Sub

Para executar o código, faça o seguinte:

  1. Abra o editor de VBA ( Alt + F11 )
  2. Na árvore no canto superior esquerdo, clique com o botão direito do mouse em sua pasta de trabalho e insira um novo módulo
  3. Copie o código acima para este módulo
  4. Feche o editor do VBA
  5. No Excel, pressione Alt + F8 para executar as macros e selecione SaveSheets

ou veja Como adiciono o VBA no MS Office?

    
por 06.03.2013 / 22:58
11
  1. Quando você clica com o botão direito na guia de uma planilha do Excel, pode selecionar Mover ou Copiar ...

  2. Nacaixadediálogoresultante,vocêpodeselecionarumcadernodetrabalhodedestino.Selecione(novolivro).

  3. Clique em OK . Sua planilha agora está dentro de um novo documento.

por 14.03.2013 / 21:06
5

Eu tentei a solução de Peter Albert e não funcionou para mim, então encontrei uma solução em este post (“Excel - salvar planilhas como arquivos separados”) em < a href="https://jen3ral.wordpress.com"> Diário de um nerd de computador .

Funciona muito bem. Você deve renomear as folhas que contêm pontos para obter arquivos corretamente nomeados com .xls extensões.

Sub CreateNewWBS()
Dim wbThis As Workbook
Dim wbNew As Workbook
Dim ws As Worksheet
Dim strFilename As String

    Set wbThis = ThisWorkbook
    For Each ws In wbThis.Worksheets
        strFilename = wbThis.Path & "/" & ws.Name
        ws.Copy
        Set wbNew = ActiveWorkbook
        wbNew.SaveAs strFilename
        wbNew.Close
    Next ws
End Sub

Use instruções para criar e executar essa macro da postagem de Peter Albert ou de Como adiciono o VBA no MS Office?

    
por 17.05.2014 / 17:29