我正在尝试将一张工作簿从工作簿A复制到新添加的工作簿B. 我遇到的问题是它没有保留PageSetup。具有复制的工作表的新工作簿不适合原始源所在的一个页面。 我试图研究这个,但不能确定我是否需要复制PageSetup中的所有属性,或者它是否应该在复制整个工作表时起作用。 到目前为止,这是我的代码:
Public Sub makeCopies(ByVal seller As String)
Dim thisWB As Workbook
Dim newWB As Workbook
Set thisWB = ActiveWorkbook
Set newWB = Workbooks.Add
On Error GoTo ErrorHandler:
thisWB.Sheets(1).Copy Before:=newWB.Sheets(1)
newWB.Activate
newWB.SaveAs fileName:=seller & ".xlsx"
newWB.Close
thisWB.Activate
Exit Sub
ErrorHandler:
MsgBox "Error" & Err.Number & Err.Description
newWB.Close
End Sub
答案 0 :(得分:1)
对于 Worksheet.PageSetup属性或属性未被传输,有点不清楚。在下面的过程中,略微修改,以便孤立的空白工作表不包含在新工作簿中,'×wide by×tall'属性以及'在顶部重复的行'被忠实地传递到新工作表/工作簿
Sub main()
makeCopies "makeCopies"
End Sub
Public Sub makeCopies(ByVal seller As String)
Dim thisWB As Workbook
Dim newWB As Workbook
Set thisWB = ActiveWorkbook
On Error GoTo ErrorHandler:
thisWB.Sheets(1).Copy
Set newWB = ActiveWorkbook
newWB.SaveAs Filename:=Environ("TEMP") & Chr(92) & seller & ".xlsx"
newWB.Close
thisWB.Activate
Exit Sub
ErrorHandler:
MsgBox "Error" & Err.Number & Err.Description
newWB.Close
End Sub
将工作表复制到“无目的地”会创建一个新工作簿,该工作簿包含ActiveWorkbook property。唯一的工作表将是原始的直接副本,除非您出于某种原因在新工作簿中需要1-3个空白工作表,否则它似乎更合乎需要。