如何将复制的数据粘贴到下一个空单元格

我需要粘贴复制的数据到下一个空单元格。
我已经完成了我的代码复制数据。 而我在粘贴它时遇到了麻烦。 以下是我的代码:

Dim eRow As Long Workbooks("Daily Task Tracker - March 2015.xlsx").Activate Worksheets("Tasks").Activate Sheets("Tasks").Select eRow = WorksheetFunction.CountA(Range("A:A")) + 1 Cells(eRow, "A:G").PasteSpecial xlPasteValuesAndNumberFormats 

有人可以帮我find我的语法错误?

来自OP评论的代码:

 'Copy Data Sheets("Daily Tasks Tracker").Select Range("D8").Select ActiveCell.Offset(1, 0).Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy 

对于所有的意图和目的,只需要指定左上方的单元格,如果您正在粘贴从一系列单元格复制的数据块。

 Dim eRow As Long with Sheets("Tasks") eRow = WorksheetFunction.CountA(.Range("A:A")) + 1 .Cells(eRow, "A").PasteSpecial xlPasteValuesAndNumberFormats end with 

备选没有Select

通常最好是从下往上查找最后使用的单元格,然后向下推进一个单元格到第一个未使用的单元格。 从上往下看或计数值与单元格可能会遇到一个空白单元格,这将产生错误的结果。

 Dim w As Long, h As Long With Sheets("Daily Tasks Tracker") 'D9 is Range("D8").Offset(1, 0).Select w = .Range(.Range("D9"), .Range("D9").End(xlToRight)).Cells.Count h = .Range(.Range("D9"), .Range("D9").End(xlDown)).Cells.Count .Range("D9").Resize(h, w).Copy _ Destination:=Sheets("Tasks").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) End With 

如果您正在粘贴xlPasteValuesAndNumberFormats ,则几乎只是执行标准的复制和粘贴操作。 这是更容易的代码,你不必添加一个Application.CutCopyMode = False来暂停复制模式。