Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 宏来比较两列,如果缺少,则插入一行_Vba_List_Automation_Compare - Fatal编程技术网

Vba 宏来比较两列,如果缺少,则插入一行

Vba 宏来比较两列,如果缺少,则插入一行,vba,list,automation,compare,Vba,List,Automation,Compare,这就是我想要实现的,为了摆脱大量的手工工作。我基本上有两个列表,每个列表由两列组成(我们称之为colA、colB、codD和colE)。第一个列表(A+B)通常比第二个列表(D+E)大,因此我的目标是自动发现缺失条目的过程,在找到一个条目时插入一行(实际上,只向下滚动colD和colE对应的两个单元格),然后循环到左列表的末尾。 通常情况下,我会手动在colA和colD中比较单元格,如果不同->添加一行向下滚动,然后循环 如何使用VBA宏自动执行此操作?我把你从我的垃圾代码中解救出来,我想这对你

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

如何使用VBA宏自动执行此操作?我把你从我的垃圾代码中解救出来,我想这对你来说是一个超级简单的问题…:)

提前谢谢 A.

以下是想法:

在列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
子测试()
Dim cl As范围
设置cl=范围(“D1”)
当cl.行<10000时执行
如果cl.值cl.偏移(0,-3).值,则
cl.偏移量(0,1)。插入移位:=xlDown
cl.插入移位:=xlDown
设置cl=cl.Offset(-1,0)
如果结束
设置cl=cl.Offset(1,0)
环
端接头

听起来不错,但我的VBA编辑器阻止了我说cl不能在您提到的第一行声明为单元格OUPS对不起,将cl设置为范围现在是错误运行时424,指向第二行,即设置行您必须用类似图纸的名称(“图纸1”)替换图纸