Vba Excel列离散宏

Vba Excel列离散宏,vba,excel,excel-2010,Vba,Excel,Excel 2010,我不知道怎么写,所以我想我会在这里问,我有一个电子表格,其中包含一个组件名称和制造商参考。我需要编写一个宏来检查确保制造商参考不用于任何其他组件名称 例如,允许以下情况: Component Name Manufacturers Reference Scalpol SC001 Scalpol SC001 Scalpol Two SC002 正如您在上面看到的

我不知道怎么写,所以我想我会在这里问,我有一个电子表格,其中包含一个组件名称和制造商参考。我需要编写一个宏来检查确保制造商参考不用于任何其他组件名称

例如,允许以下情况:

Component Name              Manufacturers Reference
Scalpol                     SC001
Scalpol                     SC001
Scalpol Two                 SC002
正如您在上面看到的,2个SCAPOL行具有相同的制造商参考,但制造商参考不允许用于除SCAPOL以外的任何其他零件。例如:

Component Name             Manufacturers Reference
Scalpol                    SC001
Scissors                   SC001
不允许出现上述情况,因此需要将错误整数设置为1。请使用SQL:

SELECT S2.Component_Name, 1 as Error FROM [Sheet1$] as S1 
INNER JOIN [Sheet1$] as S2 ON 
S1.Manufacturers_Reference = S2.Manufacturers_Reference and 
S1.Component_Name <> S2.Component_Name 
WHERE S1.Component_Name < S2.Component_Name
选择S2.Component\u Name,1作为错误,从[Sheet1$]中选择S1作为错误
内部连接[Sheet1$]与S2上的相同
S1.制造商参考=S2.制造商参考和
S1.组件名称S2.组件名称
其中S1.Component_Name
可以使用Microsoft query(Excel功能区中的“数据”选项卡)创建查询-请参见此处:


或者可以随意使用我的外接程序:

我已经有一个宏,它可以执行一些其他检查,尽管我已经编写并正在执行这些检查,因此我需要在vba中执行这些检查,以便它可以在宏中执行其余的验证。仍然有效-创建查询并在vba宏中刷新它(查询成为可刷新的查询表)并对每一行执行一次。比从头开始写更好更有效