Como copiar planilhas programaticamente

Você pode criar uma cópia de uma planilha e inserir essa planilha antes ou depois de uma planilha existente na pasta de trabalho.Se você não especificar onde inserir a planilha, o Excel cria uma nova pasta de trabalho para conter a nova planilha.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Excel 2013 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

ObservaçãoObservação

Se você copia programaticamente a planilha ou o usuário final copia a planilha manualmente, não há nenhum code-behind a nova planilha e controles na nova planilha não funcionam.Isso ocorre porque a planilha recém-copiado é um Microsoft.Office.Interop.Excel.Worksheet objeto e não um Microsoft.Office.Tools.Excel.Worksheet item de host.Controles Windows Forms e controles de host só podem ser adicionados aos itens de host.Para obter mais informações, consulte Limitações de programação de itens de Host e controles de Host.

Para adicionar uma planilha copiada para uma pasta de trabalho uma personalização de nível de documento

  • Use o Copy método para copiar a primeira planilha na pasta de trabalho atual e colocar a cópia após a terceira folha.

    Globals.Sheet1.Copy(After:=Globals.ThisWorkbook.Sheets(3))
    
    Globals.Sheet1.Copy(Globals.ThisWorkbook.Sheets[3]);
    

Para adicionar uma planilha copiada para uma pasta de trabalho em um suplemento em nível de aplicativo

  • Use o Copy método para copiar a primeira planilha na pasta de trabalho atual e colocar a cópia após a terceira folha.

    Dim worksheet1 As Excel.Worksheet = CType(Application.ActiveWorkbook.Worksheets(1),  _
    Excel.Worksheet)
    Dim worksheet3 As Excel.Worksheet = CType(Application.ActiveWorkbook.Worksheets(3),  _
    Excel.Worksheet)
    worksheet1.Copy(After:=worksheet3)
    
    Excel.Worksheet worksheet1 = ((Excel.Worksheet)Application.ActiveWorkbook.Worksheets[1]);
    Excel.Worksheet worksheet3 = ((Excel.Worksheet)Application.ActiveWorkbook.Worksheets[3]);
    worksheet1.Copy(worksheet3);
    

Consulte também

Tarefas

Como adicionar novas planilhas a pastas de trabalho programaticamente

Como excluir planilhas de pastas de trabalho programaticamente

Como selecionar planilhas programaticamente

Conceitos

Trabalhando com planilhas

Itens de host e visão geral sobre controles de Host

Automatizar o Excel usando o Extended objetos

Acesso global a objetos em projetos do Office

Limitações de programação de itens de Host e controles de Host

Parâmetros opcionais em soluções do Office