在下一个可用行中将数据从1张复制到另一张

时间:2015-04-03 14:23:08

标签: vba

我每天都进行审核。我被要求将审核点保存到单独的表格中供mgmt审查。球队。代码如下,但是当我运行它时,我收到一个错误:Script out of range

Sub copy1()
Dim sheet2 As Worksheet
Dim sheet10 As Worksheet

Set sheet2 = Worksheets("sheet2")
Set sheet10 = Worksheets("sheet10")

sheet2.Range("a2:g10").Copy
sheet10.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).pastspecial xlPasteValues

Application.CutCopyMode = False
Application.ScreenUpdating = True


End Sub

2 个答案:

答案 0 :(得分:0)

很难确定,但很可能您收到“下标超出范围”错误,因为您的工作簿没有名为“Sheet2”和“Sheet10”的工作表。

以下代码从Sheet2复制数据,并将数据的值粘贴到Sheet10上的下一个可用行。

Sub Copy2()

Dim DestinationStartingCell As Range
Dim SheetRowCount As Long

Worksheets("Sheet2").Range("A2:I29").Copy

SheetRowCount = Worksheets("Sheet10").Rows.Count '1048576 for Excel 2007 and later
Set DestinationStartingCell = Worksheets("Sheet10") _
 .Range("A" & SheetRowCount).End(xlUp).Offset(1, 0)
DestinationStartingCell.PasteSpecial xlPasteValues

End Sub

答案 1 :(得分:0)

您可以使用此代码

emptyrow=WorksheetFunction.CountA(Workbooks(<workbookname>).Sheets(10).Range("A:A"))+1

Workbooks(<workbookname>).Sheets(10).Cells(emptyrow,1).pastespecial xlPasteValues

动态查找Sheet10中的第一个空行以粘贴到。