Arrays VBA检查单元格值是否为数组的一部分

Arrays VBA检查单元格值是否为数组的一部分,arrays,excel,vba,Arrays,Excel,Vba,有人能帮助测试单元格的值是否是列表的一部分吗? 我尝试了几件事,但都没有成功:( Private子工作表\u更改(ByVal目标作为范围) 如果Intersect(目标,范围(“E4:E104”))为Nothing或Target.Cells.Count>1,则退出Sub 作为变体的Dim-FI FI=表(1).范围(“A1:A5”).值 具有目标偏移量(0,-4) .Value=日期 .NumberFormat=“dd.mm.yy” 以 具有目标偏移量(0,5) .FormulaR1C1=“=R

有人能帮助测试单元格的值是否是列表的一部分吗? 我尝试了几件事,但都没有成功:(

Private子工作表\u更改(ByVal目标作为范围)
如果Intersect(目标,范围(“E4:E104”))为Nothing或Target.Cells.Count>1,则退出Sub
作为变体的Dim-FI
FI=表(1).范围(“A1:A5”).值
具有目标偏移量(0,-4)
.Value=日期
.NumberFormat=“dd.mm.yy”
以
具有目标偏移量(0,5)
.FormulaR1C1=“=R[-1]C+RC[-3]-RC[-2]”
以
如果目标=FI,则
Target.Offset(0,2).Locked=False
Target.Offset(0,3).Locked=True
艾尔塞夫:那么目标是菲
Target.Offset(0,2).Locked=True
Target.Offset(0,3).Locked=False
如果结束
我需要添加什么来查看单元格的值f是否等于单元格A1到A5的值之一?
谢谢

我使用下面的函数检查值是否在数组中:

Function CheckInArray(SearchVal As Variant, TestArray As Variant) As Boolean

    Dim icount As Long

    For icount = LBound(TestArray) To UBound(TestArray)

        If TestArray(icount, 1) = SearchVal Then

            CheckInArray = True
            Exit Function

        End If

    Next icount

    CheckInArray = False

End Function
如果
SearchVal
在数组中,函数返回
True
,如果不在数组中,函数返回
False
。 您可以添加一行,如:

If CheckInArray(Target.value, FI) then

它返回一条错误消息,指出sub语句丢失。这是因为它是一个工作表更改专用sub吗?@user12408889:我不确定是什么原因导致该错误,它对我有效。你确定没有将函数添加到sub中吗?它应该在
End sub
语句的下面或其他模块中。
If CheckInArray(Target.value, FI) then