Excel函数或VBA代码,用于搜索逗号分隔字符串中的数字

Excel函数或VBA代码,用于搜索逗号分隔字符串中的数字,vba,excel,csv,search,Vba,Excel,Csv,Search,在包含用户输入的逗号分隔数字的列中: 1,2,3,4,5 11,12,14,3 21,32,45,92,101,1 100,234,125,5 我需要在每个列表中搜索特定的数字,例如“1”,并在条件格式规则中返回TRUE以突出显示该单元格。然而,我尝试过的每件事对于任何数字的出现都会返回true,比如11、12、21、100等等,而不仅仅是1。只有当逗号之间存在特定数字时,我才需要它返回TRUE。尝试下面的代码(代码注释中的解释): 我需要它仅在逗号之间存在特定数字时返回TRUE 您可以创建U

在包含用户输入的逗号分隔数字的列中:

1,2,3,4,5
11,12,14,3
21,32,45,92,101,1
100,234,125,5

我需要在每个列表中搜索特定的数字,例如“1”,并在条件格式规则中返回TRUE以突出显示该单元格。然而,我尝试过的每件事对于任何数字的出现都会返回true,比如11、12、21、100等等,而不仅仅是1。只有当逗号之间存在特定数字时,我才需要它返回TRUE。

尝试下面的代码(代码注释中的解释):

我需要它仅在逗号之间存在特定数字时返回TRUE

您可以创建UDF,如下所示

Function CheckOne(rng As Range, chkValue As Long) As Boolean
    Dim n
    For Each n In Split(rng.Value, ",")
        If CLng(n) = chkValue Then
            CheckOne = True
            Exit For
        End If
    Next n
End Function
请参阅图片以获取参考


有关
UDF
的详细信息,请参见。

用逗号封装每个字符串,然后搜索,1,这可能会更好,因为用户定义的函数需要将值“True”放入另一列中才能工作吗?有没有办法不用这一步就可以做到呢?我在互联网上的一些地方看到了这一点,但我不知道如何让它满足我们的需要。我不确定我在尝试实现它时做错了什么。非常感谢。我知道我做错了什么。基本上,我一直在努力不填写另一个单元格来获得结果。
Function CheckOne(rng As Range, chkValue As Long) As Boolean
    Dim n
    For Each n In Split(rng.Value, ",")
        If CLng(n) = chkValue Then
            CheckOne = True
            Exit For
        End If
    Next n
End Function