下标超出范围 - 将工作表复制到新工作簿 Excel

Subscript out of range - copy worksheet to new workbook Excel

我正在尝试非常简单的过程,我正在将一个作品sheet复制到一个新的工作簿,如以下代码所示:

Private Sub btn_Documents_Click()
    Dim LastRow As Integer
    Dim printrange As Range
    Dim NewWorkbook As Workbook

    Set NewWorkbook = Workbooks.Add
    With NewWorkbook

    .Title = "Document Register"
    .SaveAs Filename:="some file path" & " Program documents status.xlsx"
End With
Workbooks("COFFIE Project Tracker V2.0.0.0").worksheets("Document Register").Copy Before:=NewWorkbook.Sheets("Sheet1")

Unload Me
frm_Control.Show

End Sub

这个确切的代码以前对我有用,但是,这次它在代码的复制行上抛出下标超出范围错误。我已经仔细检查了文件名,我正在复制的 sheet 的名称,它们都是正确的,所以我现在不知道它为什么会抛出这个错误。

为什么不直接将工作表复制到新工作簿(无需手动创建目标工作簿)?

Workbooks("COFFIE Project Tracker V2.0.0.0").worksheets("Document Register").Copy
with activeworkbook
     .Title = "Document Register"
     .SaveAs Filename:="some file path" & " Program documents statusx", FileFormat:=xlOpenXMLWorkbook
end with

请注意,我正在使用 .SaveAs 的 FileFormat 参数并丢弃文件名中的文件扩展名。

如果您需要将 NewWorkbook 工作簿对象用于您所显示的内容之外的其他内容,很容易将其设置为您在 copy-to-new-workbook-on 上创建的活动工作簿-苍蝇。