Excel VBA,空单元格位于最后一行

Excel VBA,空单元格位于最后一行,excel,vba,Excel,Vba,在VBA Excel宏中, 我从另一个工作表复制行,选择另一个工作表,并在粘贴它们之前尝试查找下一个打开的单元格 Range("A1").End(xlDown).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValues 页面有第一行列标题,然后find将这些标题传递到最后一行 If伪数据 放在第二行,或者如果已经存在数据 它起作用了 为什么要这样做?Range.End(xlDown)相当于按Ctrl+↓. 自己测

在VBA Excel宏中, 我从另一个工作表复制行,选择另一个工作表,并在粘贴它们之前尝试查找下一个打开的单元格

Range("A1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues 
页面有第一行列标题,然后find将这些标题传递到最后一行

If伪数据

放在第二行,或者如果已经存在数据

它起作用了

为什么要这样做?

Range.End(xlDown)
相当于按Ctrl+↓.

自己测试-如果第1行只有一个标题,那么您将跳转到
工作表的最后一行。如果标题下有数据,则移动到该行

使用
Range.End(xlUp)
工作表上的最后一行向上移动,以查找下一个可用行,如下所示:

With Sheet1
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues
End With
Range.End(xlDown)
相当于按Ctrl+↓.

自己测试-如果第1行只有一个标题,那么您将跳转到
工作表的最后一行。如果标题下有数据,则移动到该行

使用
Range.End(xlUp)
工作表上的最后一行向上移动,以查找下一个可用行,如下所示:

With Sheet1
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues
End With

站在您的数据布局上,您可以使用:

Cells(WorksheetFunction.CountA(Columns(1)) + 1, 1).PasteSpecial Paste:=xlPasteValues 
或者,使用明确的工作表参考(推荐):


站在您的数据布局上,您可以使用:

Cells(WorksheetFunction.CountA(Columns(1)) + 1, 1).PasteSpecial Paste:=xlPasteValues 
或者,使用明确的工作表参考(推荐):