在Excel中复制大表

时间:2017-04-28 10:55:18

标签: excel vba excel-vba

最近,我遇到了一个似乎很难解决的问题,但我是VBA的新手,因此我需要任何建议。 我正在尝试在VBA中编写一个复制非常大的工作表(大约140k行)的宏。

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

我目前的解决方案是:

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方法复制大表?代码示例对于较小的文件非常适用。

1 个答案:

答案 0 :(得分:0)

尝试。它对我来说很好。

 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

可能是因为你有一张名为"姓名"它崩溃了。你有没有检查过你是否已经拥有它?