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

     2023-04-13     143

关键词:

【中文标题】Excel 函数或 VBA 代码在逗号分隔的字符串中搜索数字【英文标题】:Excel Function or VBA code to search for number in comma-separated string 【发布时间】:2017-07-11 02:37:51 【问题描述】:

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

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

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

【问题讨论】:

用逗号封装每个字符串,然后搜索,1, 【参考方案1】:

我需要它仅在逗号之间存在特定数字时返回 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 的详细信息,请参阅this。

【讨论】:

我在整个互联网的几个地方都看到了这个,但我不知道如何让它满足我们的需求。当我尝试实现它时,不确定我做错了什么。 非常感谢。我弄清楚我做错了什么。基本上我是 并试图不填写另一个单元格来获得我的结果。【参考方案2】:

试试下面的代码(代码 cmets 内的解释):

Option Explicit

Sub HighlightOnes()

Dim i As Long
Dim Elem As Variant
Dim myArr As Variant

With Worksheets("Sheet1") ' change "Sheet1" to your hseet's name
    For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row ' loop until last row with data in column A
        myArr = Split(.Range("A" & i).Value, ",")

        ' loop through array elements and look for 1
        For Each Elem In myArr
            If Elem Like "1" Then ' check if current element is "1"
                .Range("B" & i).Value = "True" ' put a value of "True" in the next column (just for example)
                ' or proceed here with the formatting of the cell 
                Exit For
            End If
        Next Elem

    Next i
End With

End Sub

【讨论】:

这作为用户定义的函数可能会更好 是否需要将值“True”放入另一列才能使其正常工作?没有这一步有没有办法做到这一点?

Excel-VBA 工作表拆分和保存以逗号分隔的许多空白列结束

】Excel-VBA工作表拆分和保存以逗号分隔的许多空白列结束【英文标题】:Excel-VBAsheetsplitandsaveendsupwithmanyblankcolumnsdelimitedbycommas【发布时间】:2018-02-0516:24:28【问题描述】:我是excel-vba的新手,能够成功地将某些列复制到新工作表... 查看详情

如何仅在 VBA 逗号分隔列表中的字符串(而不是数字)上加上引号?

】如何仅在VBA逗号分隔列表中的字符串(而不是数字)上加上引号?【英文标题】:Howtoputquotesonlyonstrings(notonnumbers)inaVBAcomma-separatedlist?【发布时间】:2018-03-2321:06:28【问题描述】:上下文:我想在PostgreSQL数据库中导入Excel电子... 查看详情

在批处理文件中拆分以逗号分隔的字符串并在循环中调用 sqlplus 函数

】在批处理文件中拆分以逗号分隔的字符串并在循环中调用sqlplus函数【英文标题】:Splitstringseparatedbycommainabatchfileandcallasqlplusfunctionintheloop【发布时间】:2021-12-2403:10:56【问题描述】:我正在尝试拆分用逗号分隔的字符串,然后... 查看详情

读取以逗号分隔的一串数字

...正在编写一个函数,它应该读取一串数字,用逗号分隔。字符串格式如下:"1,2,3"唯一的“规则”是函数可以容忍任何空格或制表符,只要每个数字之间有一个逗号。如果字符串有效,则将数字存储在链表中。例如,以下字符串... 查看详情

sql拆分逗号分隔的字符串(pipelined函数)(代码片段)

查看详情

python爬虫编程思想(81):csv文件存储

...条记录由若干个字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。不过所有记录的字段数必须相同,类似于关系型数据库的二维表。CSV文件比Excel文件更加简洁,Excel文件是电子表格文件,是二进制格... 查看详情

sql[sql]将逗号分隔的字符串转换为sql(或)查询(代码片段)

查看详情

pythonpython:将set,tuple或list转换为逗号分隔的字符串。(代码片段)

查看详情

字符串csv解析表格逗号分隔值(代码片段)

...隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有 查看详情

用c语言写csv文件,如何写出多个工作表?

...隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。 参考技术Ccsv文件即逗号分隔值文件。逗号分隔值(comma-separatedvalues,csv,有时也称为字符... 查看详情

如何在忽略转义逗号的同时拆分逗号分隔的字符串?

】如何在忽略转义逗号的同时拆分逗号分隔的字符串?【英文标题】:HowtosplitacommaseparatedStringwhileignoringescapedcommas?【发布时间】:2010-10-2315:21:25【问题描述】:我需要编写一个StringUtils.commaDelimitedListToStringArray函数的扩展版本,... 查看详情

将逗号分隔的条目拆分为新行(无 VBA)

】将逗号分隔的条目拆分为新行(无VBA)【英文标题】:Splitcomma-separatedentriestonewrows(NoVBA)【发布时间】:2013-09-0811:50:14【问题描述】:我目前在工作表中有这些数据:ColAColB105399,400207405,406,407并希望拆分第二列中以逗号分隔的条... 查看详情

在 VBA Excel 中难以找到行尾

...;每个元素由空格或制表符分隔。我有数据可以读取所有字符串,但我发现很难将数据放入单元格。如何找到第一行的结尾。文本文件:$SUBCASE11$DISP0509512下面是完整的代码,我只得到第一个字符串 查看详情

如何在 SQL 的动态查询中使用 Pass 逗号分隔的字符串

】如何在SQL的动态查询中使用Pass逗号分隔的字符串【英文标题】:HowtousePasscommaseparatedstringindynamicqueryinSQL【发布时间】:2013-10-1311:12:27【问题描述】:我有一个函数,它将从逗号分隔的字符串返回整数值,它需要两个参数(@stri... 查看详情

如何在选择语句的“NOT IN”子句中使用逗号分隔的字符串列表作为 pl/sql 存储的函数参数

】如何在选择语句的“NOTIN”子句中使用逗号分隔的字符串列表作为pl/sql存储的函数参数【英文标题】:Howtouseacomma-separatedlistofstringsaspl/sqlstoredfunctionparameterinsidea"NOTIN"clauseofaselectstatement【发布时间】:2013-01-0408:48:17【问... 查看详情

在 Oracle SQL 中求和逗号分隔值

...要对逗号分隔值求和的OracleSQL函数。比如这个函数需要从字符串中返回100:0,4,2,88,6【问题讨论】:Splitfunctioninoracletocommaseparatedvalueswithautomaticsequence的可能重 查看详情

用于逗号分隔文本的 Mysql 正则表达式

...中的逗号分隔文本有一点问题。我有一个像"12,5,45"这样的字符串,我想使用mysql的正则表达式函数匹配5:agentsREGEXP\'someregexhere\'我怎样才能做到这一点?我以\\5+(,\\s*5+)\\或(?:(5)*. 查看详情

java示例代码_在java中将字符串数字转换为逗号分隔的整数

java示例代码_在java中将字符串数字转换为逗号分隔的整数 查看详情