VBA:清除粘贴范围后,粘贴功能会导致1004错误

时间:2019-02-20 07:04:54

标签: excel vba ms-error-1004

当我尝试将某些数据从一张纸(“导入”)复制到另一张纸(“ TIs”)时,我的代码有问题。第二张表中有一个范围,在复制数据之前将其清除。当我尝试粘贴它时,我得到一个

  

错误1004“应用程序定义的错误或对象定义的错误”

Sub Data()
Sheets("Import").Cells.ClearContents
Sheets("TIs").Range("A2:F10000").ClearContents

Dim sPath As String 'Input file path
Dim k As Integer
Dim CopyData

CopyData = 10

For k = 1 To 1 'For now k=1
    sPath = ThisWorkbook.Path & "\InputData\Data (" & k & ").csv"                           'defines a path to csv file
    copyDataFromCsvFileToSheet sPath, ",", "Import"                                         'imports data from csv file to "Import" Sheet (this is another functions, it works perfectly)
    DataLength = Application.WorksheetFunction.CountA(Sheets("Import").Range("B:B"))        'defines last row where are imported data
    Sheets("Import").Range(Cells(CopyData + 1, 2), Cells(DataLength, 7)).Copy Sheets("TIs").Range("A2")     'copies it from one sheet to another
Next k

End Sub

在我第一次运行Clear / ClearContents函数之前,这非常完美。在第一个版本中,此范围尚未清除,并且工作正常。然后,我第一次使用Clear函数运行宏,并且从那时起,无论是否对Clear / ClearContents函数进行注释,“粘贴”函数都将不起作用。

您知道问题出在哪里吗? 谢谢您的支持。

1 个答案:

答案 0 :(得分:0)

用户PEH解决了该问题。问题是参考带有线的纸

Sheets("Import").Range(Cells(CopyData + 1, 2), Cells(DataLength, 7)).Copy Sheets("TIs").Range("A2")     'copies it from one sheet to another

正确的版本是:

Sheets("Import").Range(Sheets("Import").Cells(CopyData + 1, 2), Sheets("Import").Cells(DataLength, 7)).Copy Sheets("TIs").Range("A2")     'copies it from one sheet to another