如何使用excel vbavalidation与一组值匹配的列中的值

请参阅下面的两张图片1和2

表1 在这里输入图像说明

工作表2 在这里输入图像说明

我想validation表1“颜色”列中的值,即如果Sheet 1“Type”是car,那么颜色只能是黑色和白色。表2具有什么types的规则,哪些颜色可以是有效的。 如果车型1中有其他颜色,那么相邻的栏应该说“颜色不匹配”。

for each cell in (sheet 1 - column color) get type from (sheet 1 - column Type) check if (Sheet 1 - column Type) is in (sheet 2 column Type), if not give error in adjacent cell "No type" if (Sheet 1 - column Type) is in (sheet 2 column Type) then Check if (Sheet 1 - column color) has the valid color if not give error "color not matching" 

任何人都可以告诉我如何做到这一点是在Excel中的VB。

Ps,我知道如何使用countifs做到这一点,但只是想知道这是如何在Excel中完成的VB

谢谢。

你不需要VBA。 您可以在sheet1单元格E2中使用简单的公式(并向下拖动):

 =IF(COUNTIFS(Sheet2!$A$1:$A$1000,Sheet1!D2,Sheet2!$C$1:$C$1000,Sheet1!A2)=0,"color not matching","color OK")