在另一个工作表中粘贴下一行

我是编程新手,尝试通过使用macroslogging器学习VBA的基础知识。 我正在开发一个小型VBA项目,需要复制C列第2页和第H列第1页的数据,然后将它们粘贴在第3页表格A中的一个列上。第一部分很简单。 我从第2页上的Col C复制到第3页上的Col A上。第2部分是从第1页上的Col. H复制,然后在Sheet 3上的Col A上find下一个可用的行。我的问题是如何获取我的macros将复制的数据粘贴到Sheet 3上的下一个可用行上, 我正在尝试debugging,看起来问题是select下一个空行。 它看起来不像Cells.NextRow.Select是正确的语法,即使NextRow被定义。 这是我的代码:

Sub Macro2() ' copy from Sheet2 Sheets("Sheet2").Select Range("C7").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy ' paste on Sheet3 Sheets("Sheet3").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' copy from Sheet1 Sheets("Sheet1").Select Range("H2").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy ' paste on Sheet3 Sheets("Sheet3").Select NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 **Cells.NextRow.Select** Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 

FYI表1和2分别在行1和行6上有列标题。 我不希望那些复制,所以这就是为什么我硬编码范围的起点复制。 我的variables“NextRow”似乎正在工作,当我debugging,但似乎问题是与下一个可用的行的实际select。

NextRow是一个不是Range()

 Sheets("Sheet3").Range("A" & NextRow).Select 

但是你应该清理你的代码,避免使用.Select 。 我将编辑一个帮助。

 Sub Macro2() ' copy from Sheet2 With Sheets("Sheet2") .Range(.Range("C7"), .Range("C7").End(xlDown)).Copy End With ' paste on Sheet3 Sheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False ' copy from Sheet1 With Sheets("Sheet1") .Range(.Range("H2"), .Range("H2").End(xlDown)).Copy End With ' paste on Sheet3 With Sheets("Sheet3") NextRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Range("A" & NextRow)..PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End With End Sub