尝试使用Excel公式或VBA

我有两个不同的工作簿。 第1册和第2册的列A到列A的数目相同

我想要匹配两个工作簿之间的logging,例如:我在工作表1&2中有一个名称为Birthday,Column B City,C列Passport Number …….的列。

我想匹配工作表1范围A中的单元格A1:工作表2,如果列A单元格13中的logging不匹配显示出生date不匹配在N13工作簿2,如果它不匹配工作表1单元格13从范围B:B工作表2在工作簿2的N栏13中显示城市不是MATCH,依此类推直到M栏。

我正在使用下面的公式,但它不能正常工作,我不知道我缺less什么,应该添加什么公式。我不知道VBA。 但是我想看看使用excel公式或者vba更容易些吗?

IF(COUNTIF(Target!$A$2:$A$5964,Source!A8)=0,"Birthday",IF(COUNTIF(Target!$B$2:$B$5964,Source!B8)=0,"City",IF(COUNTIF(Target!$C$2:$C$5964,Source!C8)=0,"Country",IF(COUNTIF(Target!$E$2:$E$5964,Source!D8)=0,"Passport Number Mismatch in Target",IF(COUNTIF(Target!$F$2:$F$5964,Source!E8)=0," Travel Date Mismatch in Target",IF(COUNTIF(Target!$G$2:$G$5964,Source!F8)=0,"First Name Mistmatch in Target",IF(COUNTIF(Target!$H$2:$H$5964,Source!G8)=0,"Full Name Mismatch in Target","Match in Target"))))))) 

提前致谢。

VBA可以访问这些相同的工作表公式函数(例如COUNTIF):实际上VBA没有该公式所没有的列或matrix函数。

但是,VBA可以让你编写循环(例如while,for),它允许if语句,过程调用和许多代码行,所以你的计算可以有更多的步骤,因此更复杂。 VBA还允许您以数组(以及string和对象)的forms存在临时空间(因此您不一定需要像使用公式一样对临时空间使用列)。 VBA也允许recursion,这使得一些计算更容易(对某些定义)。

VBA提供了一个命令式编程模型。 VBA程序可以读写电子表格的任何单元格。 另一方面,命令式编程需要以某种方式触发,例如使用button。

相比之下,具有公式的数据stream编程模型只要input源改变就会自动重新计算,这是很好的。 但有些情况下,它不能自然处理(如recursion)。

另一个select是通过编写新的公式,然后在VBA中实现,将VBA与公式结合起来。 如果你这样做,VBA只能通过函数返回值返回信息; 它不能修改电子表格。

所以,如果你可以考虑如何使用循环(和数组)或recursion来实现这一点,也许可以用一个button来触发计算(或使用自定义公式),那么VBA可能会很有趣。