VBA比较两个工作簿,如果没有匹配,复制/突出显示

时间:2018-01-08 21:58:39

标签: excel vba excel-vba

我一直在玩一些代码而且我不能,为了我的生活,我可以完全按照我的意愿去做。我希望将WB1(Master)与WB2(Daily)进行比较,如果在WB2中找到新记录,则突出显示整行并将所有新行复制(追加)到WB1。我现在的代码突出显示WB2中的所有新数据,但它只会将最后一行从WB2复制到WB1。我敢肯定我错过了一些简单但又欣赏第二眼的东西。谢谢!

A

1 个答案:

答案 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 行。