VBA – 删除复制数据中最后一行之后的所有行

我试图找出代码来删除我的复制数据的最后一行后面的所有行

我将工作表A中的数据复制到工作表B中。工作表B中已经有数据。 如果工作表A中的行数less于工作表B,我想从工作表A中删除所有未复制到工作表B中的行。

EG:工作表A = 50行工作表B = 60行。 我将工作表A复制到工作表B,我想删除不属于工作表A的10行

这是我的代码到目前为止:

Dim shCurrentWeek As Worksheet Dim shPriorWeek As Worksheet Dim lr3 As Long Set shCurrentWeek = ActiveWorkbook.Sheets("Current Week") Set shPriorWeek = ActiveWorkbook.Sheets("Prior Week") lr3 = shPriorWeek.Range(Rows.Count, "A").End(xlUp).Row 'Copies necessary rows in CurrentWeek tab to PriorWeek tab shCurrentWeek.Range("A4:X" & lr).Copy shPriorWeek.Range("A2") shPriorWeek.Range("A4:X" & lr3 + 1 & ":A" & Rows.Count).EntireRow.Delete 

我相对肯定我的lr3设置错了…不知道如何解决。

谢谢!

因为你的代码表示shCurrentWeek.Range("A4:X" & lr).Copy shPriorWeek.Range("A2") (换句话说,你正在从第4行开始复制到第2行)可以忘记关于lr3并做以下(我相信):

 shCurrentWeek.Range("A4:X" & lr).Copy shPriorWeek.Range("A2") shPriorWeek.Range("A" & lr-2 & ":A10000").EntireRow.Delete 

希望这可以帮助

你想lr3是最后一行的行号(而不是你的粘贴数据的偏移量:

 lr3 = shPriorWeek.Rows.Count 

那么删除语句应为:

 shPriorWeek.Range("A4:A" & lr3).EntireRow.Delete 

或者先清除THEN粘贴(如评论中所build议的)也是一种好方法,而且非常干净。