用于比较两列的宏,如果缺少则插入一行

时间:2014-03-05 09:30:11

标签: vba list automation compare

这是我想要实现的目标,以摆脱大量的手工作品。我基本上有两个列表,每个列由两列组成(我们称之为colA,colB,codD和colE)。第一个列表(A + B)通常大于第二个列表(D + E),因此我的目标是自动查找丢失条目的过程,在找到一个时插入一行(实际上,只向下滚动相应的两个单元格) colD和colE)然后循环到左侧列表的末尾。 通常,我手动执行此操作,通过IF比较colA和colD中的单元格,如果不同 - >添加一行向下滚动,然后循环。

如何使用VBA宏实现自动化?我把你从我迄今为止尝试的垃圾代码中拯救出来,我认为这对你来说是一个非常简单的问题...... :)

提前致谢 甲

1 个答案:

答案 0 :(得分:0)

这是一个想法:

在列D的开头定义光标。 检查光标单元格中​​的值是否等于同一行中A列中的值。 如果没有,请在D列和E列中添加一个单元格。 然后将光标设置为下面的单元格。 并重做直到列表完成。

    Sub test()
Dim cl As Range

Set cl = Range("D1")

Do While cl.Row < 10000
  If cl.Value <> cl.Offset(0, -3).Value Then
    cl.Offset(0, 1).Insert Shift:=xlDown
    cl.Insert Shift:=xlDown
    Set cl = cl.Offset(-1, 0)
  End If
  Set cl = cl.Offset(1, 0)
Loop
End Sub