当我尝试将某些数据从一张纸(“导入”)复制到另一张纸(“ 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函数进行注释,“粘贴”函数都将不起作用。
您知道问题出在哪里吗? 谢谢您的支持。
答案 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