工作表复制错误VBA

时间:2017-02-06 14:56:09

标签: excel vba excel-vba

我有以下问题。我写了一个宏,将一个工作表从一个工作簿复制到另一个工作簿。但是,在复制目的地的行上,我收到了“应用程序定义或对象定义的错误”我用另一个新工作集测试了代码并且它可以工作,但不能用于我试图实现它的工作簿。

Dim x As Workbook

Set x = Workbooks.Open("S:\INM\MME9EG\Zahlenwerk MMA2EG Equities\DHN\DHN_Europa.xls")

Workbooks("DHN_Europa.xls").Sheets("Bericht_799026").Range("B4:IV150000").Copy _
            ThisWorkbook.Sheets("DHN Europe 799026").Range("A1")

3 个答案:

答案 0 :(得分:2)

试试这个:

Dim x As Workbook

Set x = Workbooks.Open("S:\INM\MME9EG\Zahlenwerk MMA2EG Equities\DHN\DHN_Europa.xls")

x.Sheets("Bericht_799026").Range("B4:IV150000").Copy
ThisWorkbook.Sheets("DHN Europe 799026").Range("A1").PasteSpecial xlPasteAll

当然,您需要确保存在具有这些名称的工作表

答案 1 :(得分:2)

使用工作簿变量的全部意义在于 替换Workbooks("DHN_Europa.xls")但变量名称,
这里x(顺便说一句,尝试使用更明确的变量名称,它会更容易!;)

由于这是一个xls文件,您可能只有大约65,000行,但您尝试复制的内容不止于此!

Dim x As Workbook

Set x = Workbooks.Open("S:\INM\MME9EG\Zahlenwerk MMA2EG Equities\DHN\DHN_Europa.xls")

x.Sheets("Bericht_799026").Range("B4:IV60000").Copy _
            ThisWorkbook.Sheets("DHN Europe 799026").Range("A1")

答案 2 :(得分:2)

它可能是Excel版本问题,其中2007年以前的版本有65k左右的最大行数

尝试

With Workbooks.Open("S:\INM\MME9EG\Zahlenwerk MMA2EG Equities\DHN\DHN_Europa.xls").Sheets("Bericht_799026")
    Intersect(.UsedRange, .Range("B4:IV4").Resize(.Rows.count - 3)).Copy _
            ThisWorkbook.Sheets("DHN Europe 799026").Range("A1")
End With