以下是我正在努力实现的目标。
我有一个excel文件,其中包含10张纸,每张纸都包含许多行数据。此工作簿将发送给不同的人,每个人只填写A,B列中的相应信息。我创建了一个循环遍历所有已填充工作簿的vba脚本,并检查哪些行填充了单元格Ax
,Bx
。然后它将它们复制到新工作簿中。
所以我现在所拥有的是:
我现在要做的是逐行检查,并查找例如工作簿 A 的第1行第1行,减去工作簿的 B 表中的列A,B 1.找到行后我需要替换工作簿的 B 与工作簿中的一行 A 。
因此,最后我将留下一个包含已填充和未填充行的主工作簿(以前的工作簿 B )。
我希望我没有让这太复杂。任何有关实现这一目标的最佳方法的见解都将受到赞赏。
答案 0 :(得分:1)
就像我在评论中提到的那样,可以使用.Find
来实现您的目标。以下代码示例打开工作簿A
和B
。然后,它循环遍历工作簿A
中的Col C的值,并尝试在工作簿{C}的Col C中找到该值的出现。如果找到匹配项,则会比较该行中的所有列。如果所有列都匹配,则根据工作簿B
中的值写入工作簿B
的Col A和Col B.找到匹配后,它会使用A
进行Col C中的进一步匹配。
要对此进行测试,请分别将您提供的文件保存为.FindNext
和C:\A.xls
。现在打开一个新工作簿并在模块中粘贴此代码。该代码将C:\B.xls
工作簿Sheet7
与A
工作簿Sheet7
进行比较
我相信你现在可以修改其余的工作表
尝试和测试(请参阅帖子末尾的快照)
B
<强>快照强>
<强> BEFORE 强>
<强> AFTER 强>