我一直在玩一些代码而且我不能,为了我的生活,我可以完全按照我的意愿去做。我希望将WB1(Master)与WB2(Daily)进行比较,如果在WB2中找到新记录,则突出显示整行并将所有新行复制(追加)到WB1。我现在的代码突出显示WB2中的所有新数据,但它只会将最后一行从WB2复制到WB1。我敢肯定我错过了一些简单但又欣赏第二眼的东西。谢谢!
A
答案 0 :(得分:1)
您没有更新您的" lrow"粘贴新行后,在For循环中变量,因此每次都可能粘贴在同一位置。
重新分配" lrow"在您的If Not语句中考虑新添加的行。
For Each c In dWS.Range("A2", dWS.Range("A" & Rows.Count).End(xlUp))
If Not c.Value = mWS.Cells(c.Row, c.Column).Value Then
c.EntireRow.Interior.Color = vbYellow
c.EntireRow.Copy mWS.Range("A" & lRow)
lRow = mWS.Cells(Rows.Count, "A").End(xlUp).Row
End If
Next c
这解决了吗?
编辑:如下所述,.Cells.End.xlUp找到最后一个占用的行。您需要增加lrow + 1以指向第一个 empty 行。