我有一个包含两个工作表的Excel工作簿,即报表和数据。我想将“报告”选项卡的一部分写入新的工作簿文件(名为“名册”的打印范围)并保留格式,打印设置等。
下面是我到目前为止的宏 - 它可以工作但是将整个“报告”选项卡写入文件,而不仅仅是名单部分,并且它会丢失对结果文件的收件人有用的打印范围。
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 :(得分:0)
由于行
,您的代码正在复制整个“报告”标签ThisWorkbook.Worksheets("Report").Cells.Copy
.Cells获取工作表的所有单元格。要获得一部分,你可以尝试类似
ThisWorkbook.Worksheets("Report").Range(FirstCell, LastCell).Copy
其中FirstCell和LastCell是您要复制的范围的开头和结尾。要复制打印区域,您可以尝试类似
的内容DestinationSheet.PageSetup.PrintArea = OriginalSheet.PageSetup.PrintArea
希望有所帮助