2015-08-11 2 views
0

У меня есть книга Excel с двумя рабочими листами, отчет и данные. Я хочу написать раздел вкладки «Отчет» в новый файл рабочей книги (диапазон печати с именем «Реестр») и сохранить настройки форматирования, печати и т. Д.Excel Macro для создания файла отчета

Ниже приводится макрос, который у меня есть до сих пор. записывает всю вкладку «Отчет» в файл, а не только раздел реестра, и теряет диапазон печати, который будет полезен получателю результирующего файла.

Sub Macro1() 
' 
' Macro1 Macro 
' 
' Keyboard Shortcut: Ctrl+t 
' 
    Dim Output As Workbook 
    Dim FileName As String 


    'This part updates the roster - grabs the next 
    'roster value and move it to A1, thus updating the report 

    Range("A1").Select 
    Selection.End(xlDown).Select 
    Selection.Copy 
    Range("A1").Select 
    ActiveSheet.Paste 
    Application.CutCopyMode = False 
    Selection.End(xlDown).Select 
    Selection.ClearContents 
    Range("A1").Select 

'Now we write the Report worksheet to a new file using 
'the custom filename in cell AA1 

    Set Output = Workbooks.Add 
    Application.DisplayAlerts = False 

    ThisWorkbook.Worksheets("Report").Cells.Copy 

    Selection.PasteSpecial Paste:=xlPasteValues, _ 
    Operation:=xlNone, SkipBlanks:=True, Transpose:=False 

    Selection.PasteSpecial Paste:=xlPasteFormats 

    FileName = Range("AA1").Value 

    Output.SaveAs FileName 
    Output.Close 

End Sub 

ответ

0

Ваш код копирует вкладку весь отчет из линии

ThisWorkbook.Worksheets("Report").Cells.Copy 

В .Cells получает все ячейки листа. Для того, чтобы получить часть вы могли бы попробовать что-то вроде

ThisWorkbook.Worksheets("Report").Range(FirstCell, LastCell).Copy 

где FirstCell и LastCell являются начало и конец диапазона вы хотите скопировать. Для того, чтобы дублировать область печати, вы можете попробовать что-то вроде

DestinationSheet.PageSetup.PrintArea = OriginalSheet.PageSetup.PrintArea 

Надежда, что помогает

Смежные вопросы