如何使用VBA将范围公式应用于范围

我正在寻找一种方法来在Excel中对一个值进行按位AND并将其应用于范围。 这里是一张图片来说明:

例如图片

我想用一个固定值在Column“Status”上应用按位AND,比如说(1001b)。 如果Status&1001b = 1001b,则报告“输出”中的“值”字段。 否则,把0。

Excel和VBA都可以使用,但是由于表格可能很大,所以解决scheme可能不使用循环(太慢,时间效率高的解决scheme会很好)。 我正在使用Excel 2010,因此excel BITAND函数不适用于我(仅适用于Excel 2013版本)

我在SO和互联网上search,并没有find一个类似的问题的正确方法。
我试图优化我的初始解决scheme,使用recursion,更省时间,这是我所做的:

For cptDonnee_s32 = 0 To JeuDonnee_rs.RecordCount - 2 ' Loop through all my data If (Value And 8) = 8) And (Value And 1) = 1) Then ' Compare bitfields one by one Output = Value ' Replace output by value here Else Output = 0 ' put 0 in output there End If next 

你可以使用一个简单的UDF:

 Function BitAnd(dIn As Double, lMatch As Long) As Boolean BitAnd = (dIn And lMatch) = lMatch End Function 

并input:

 =if(BitAnd(K2,9),L2,0) 

并抄下来。