繁体   English   中英

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

[英]Subscript out of range - copy worksheet to new workbook Excel

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

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

这个精确的代码以前对我有用,但是,这一次在代码的复制行上抛出下标超出范围错误。 我已经仔细检查了文件名,我要复制的工作表的名称,而且都正确无误,所以我现在不知道为什么它会引发此错误。

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

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工作簿对象用于除显示之外的其他用途,可以很容易地将其设置为您在动态复制到新工作簿上创建的活动工作簿。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM