复制工作表作为新的工作簿保持格式,下拉列表等

我有工作簿,其中包含数据工作表包含颜色,下拉(与下拉select单元格更改其颜色)等格式。 我一直试图创build特定的工作表的副本,并发送它使用简单的右键单击并创build副本到新的工作簿创build副本,但不带有基于文本值的单元格颜色。 到目前为止,我试图用不同的VB代码来得到相同的结果 – 创build新的工作簿和粘贴数据,但没有格式化。 我曾尝试使用下面的代码:

Sub CopySheetToNewWorkbook1() Dim wname As String wname = ActiveCell.Value Sheets(wname).Cells.Copy Set nbook = Workbooks.Add(1) With nbook.Sheets(1) .Cells.PasteSpecial xlValues .Cells.PasteSpecial xlFormats End With Range("a:l").EntireColumn.AutoFit End Sub 

另一个尝试:

 Sub CopySheetToNewWorkbook2() Dim wname As String wname = ActiveCell.Value Sheets(wname).Activate Range("a1:l25").Copy Set nbook = Workbooks.Add(1) Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False Range("a:l").EntireColumn.AutoFit End Sub 

我认为这将保存工作簿保存所有的格式,但再次变成没有帮助。 (也是能够创build副本,但没有得到保存,想出了错误信息“方法另存为对象工作簿失败”):

 Sub CopySheetToNewWorkbook3() Dim wname As String wname = ActiveCell.Value Sheets(wname).Copy ActiveWorkbook.SaveAs "C:\Data:\Roster.xlsx", FileFormat:=51 End Sub 

我放弃之前的最后一次尝试,并决定寻求帮助(在这一个我不知道我怎么过去到新的工作簿 – 绝对失败:

 Sub CopySheetToNewWorkbook4() Dim wname As String wname = ActiveCell.Value Set nbook = Workbooks.Add Sheets(wname).Copy before:=Workbook.nbook.seehts(1) With nbook.Sheets(1).UsedRange .Value = .Value End With End Sub 

我希望我能指出正确的方向,因为我已经尝试了所有可能的帮助,直到现在我都找不到成功。

这会:

  • 将工作表复制到新的工作簿
  • 保存新的工作簿
  • closures新的工作簿
  • 控制然后返回到原始工作簿

在标准模块中:

 Sub Macro1() Sheets("Sheet1").Copy ActiveWorkbook.SaveAs _ Filename:="C:\Users\garys\Desktop\newname.xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, _ CreateBackup:=False ActiveWorkbook.Close End Sub