我需要在数字的文本字符串中找到一个值“。”将表示值之间的范围,“,”是两个值之间的中断。
示例:我需要确定116是否在文本字符串
中[000.117,119.131,137,140.999]
是的,116会在列表中,而136则不会。
我必须测试超过一千行,每行(地区,部门和帐户)有三个不同的值。我只需要从公式或VBA代码开始帮助测试值是否在文本字符串中。我唯一的选择是将50多个文本字符串强制插入数字列表,但文本字符串列表可能会逐月更改,并且需要几个小时才能将50多个文本字符串转换为数字列表。谢谢。
答案 0 :(得分:3)
不确定您的数据是如何布局的,但这应该可以帮助您入门。
这是一个带有两个参数的函数,一个是要搜索的字符串,另一个是你要查找的字符。
Function checkRange(str As String, findStr As Long) As String
Dim strArray() As String
strArray() = Split(str, ",")
Dim i As Long
Dim rng() As String
Dim bottom As Long, top As Long
For i = LBound(strArray) To UBound(strArray)
Debug.Print strArray(i)
If InStr(1, strArray(i), ".") > 0 Then
' there is a decimal
rng = Split(strArray(i), ".")
bottom = rng(0)
top = rng(1)
If bottom <= findStr And top >= findStr Then
'MsgBox (findStr & " is in the range " & strArray(i))
checkRange = findStr & " is in the range " & strArray(i)
Exit For
Else
checkRange = findStr & " is NOT in any range"
End If
End If
If strArray(i) = findStr Then
checkRange = findStr & " is in the range " & strArray(i)
Exit For
End If
Next i
End Function
你可以这样称呼:
checkRange "000.117,119.131,137,140.999", "116"
或在Excel单元格中: