复制Excel中的大床单



最近,我遇到了一个似乎很简单的问题,但是我是VBA的新手,因此我需要任何建议。我正在尝试在VBA中写一个宏,该宏复制一张很大的纸(约140k的线(。

我根据以下主题尝试了不同的方法:

  • 在Excel VBA中复制大量值的最快方法
  • 大文件尺寸复制范围vba非常大的Excel文件 - 如何在床单之间复制数据?

我当前的解决方案是:

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Dim wb As Workbook
Set wb = ActiveWorkbook
With Workbooks.Open(FileName, ReadOnly:=True)
    .Sheets(1).Visible = -1
    .Sheets(1).Copy before:=wb.Sheets(1)
     wb.Sheets(1).Name = "Name"
    .Close False
End With

我运行此宏时 - Excel没有响应,并且程序未打开文件。我的问题是,是否有可能使用标准VBA方法复制大张纸?代码示例与较小的文件绝对可以正常工作。

尝试。它对我来说很好。

 Sub rten()

 Dim wb As Workbook
 Dim docname As String
 docname = "test1"
    Set wb = ActiveWorkbook
    With Workbooks.Open(docname, ReadOnly:=True)
        .Sheets(1).Visible = -1
        .Sheets(1).Copy before:=wb.Sheets(1)
         wb.Sheets(1).Name = "Name"
        .Close False
    End With

 End Sub

可能是因为您有一个称为"名称"的表崩溃。您是否检查过是否已经在那里已经有?

最新更新