使用“Cells(Rows.count).Row).End(xlUp)”的VBA代码在263次迭代后失败

时间:2015-10-14 15:44:12

标签: excel vba excel-vba

我正在使用表单中的Sub:

Score = df[df['Ind'] == 0]['Score']

与:

结合使用
If Not Intersect(Target, Sheets("Sheet1").Range("A1")) Is Nothing Then (+ code)

意图将Sheet1上的单元格(例如A1)中的数据复制到Sheet2上的列(例如A :)。

这适用于前263次迭代(无论时间间隔始终为263),但是在第264次,而不是将下一个值复制到列中的下一个空单元格,它会不断地覆盖细胞A2。这很不幸,因为我需要记录至少600个值。

我在Windows 10下使用Excel 2013。

1 个答案:

答案 0 :(得分:0)

应该是:

Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Sheet1").Range("A1").Value

仅使用一个参数获取Cells(Rows.Count)不会将您引导到A列的底部单元格,因为Cells()将在移动到下一行之前水平计算项目。经过一些操作后,您将回到已经使用过的区域。