[VBA] Exportar planilha para um novo arquivo

  1. 2 anos atrás

    Douglas Moura

    7 Ago 2015 Administrador

    Um código útil para exportar um trecho da planilha em VBA. Ao ser executado, ele abre uma janela para que o usuário possa definir o nome da nova planilha a ser salva e sua localização.

    Você pode aplicar uma subrotina à um botão que chame a subrotina abaixo passando os parâmetros e rng (exemplo A1:E12) e opcionalmente, o tipo de arquivo que deverá ser salvo (por padrão: .xlsx).

    Sub ExportData(rng, fileFormat as Integer = 51)
        Dim irow As Integer
        Dim rngArr() as String
        
        fileSaveName = Application.GetSaveAsFilename(fileFilter:="xlsx Files (*.xlsx), *.xlsx")
        
        If fileSaveName <> False Then
            ActiveSheet.range(rng).Copy
            Set NewBook = Workbooks.Add
            Set rngArr() = Split(rng, ":")
            NewBook.Worksheets("Sheet1").range(rngArr(0)).PasteSpecial
    
            ' Formatos de arquivo disponíveis (fonte: https://blogs.office.com/2009/07/07/use-the-vba-saveas-method-in-excel-2007/):
            ' 51 = xlOpenXMLWorkbook (sem macros, .xlsx)
            ' 52 = xlOpenXMLWorkbookMacroEnabled (com ou sem macros, .xlsm)
            ' 50 = xlExcel12 (Formato binário de planilha do Excel, com ou sem macros, .xlsb)
            ' 56 = xlExcel8 (Formato do Excel 97-2003, .xls)
            
            NewBook.SaveAs fileSaveName, FileFormat:=fileFormat
        End If
    End Sub

    Gist disponível no GitHub

ou Registre-se para responder!