我正在努力解决我认为容易解决的问题。不幸的是我无法做到。我有一个包含文本的单元格,实际上是一系列代码除以&#34 ;;"。此外,我有一系列包含单个代码的单元格。现在我想计算文本中有多少单个代码。
Text-Cell: AA01;AA05;AB03;AB05;CD07
Range:
AA01
AB05
AB07
CD07
CD09
Result: 3
范围是动态的,因此我看到的单元格数量不同。我正在寻找像这样的代码:
Function NumberContaining(RANGE As Variable, TEXT as Variable) as Integer
Dim RESULT as Integer
Dim CELL as Variable
RESULT=0
For(CELL in RANGE)
RESULT=RESULT+WorksheetFunction.CountIf(Text,”=*” & CELL & “*”)
Next
NumberContaining=RESULT
End Function
不幸的是我无法使其发挥作用。如果你能帮助我,我会很高兴的。感谢。
答案 0 :(得分:0)
如果字符串的分隔符总是相同(;
),您可以使用Split
函数然后循环遍历数组以查看是否有任何变体与任何单元格匹配在你的范围内。
请改为尝试:
Function NumberContaining(rng As Range, txt As String) As Integer
Dim sArray() As String
Dim element As Variant
sArray = Split(txt, ";")
For Each element In sArray
If WorksheetFunction.CountIf(rng, Trim(element)) > 0 Then NumberContaining = NumberContaining + 1
Next element
End Function
答案 1 :(得分:0)
使用您的模板......(您的语法有些问题)。但是,请使用Jordan的方法,因为AA01与AA011匹配。
Function NumberContaining(rRANGE As RANGE, vTEXT As Variant) As Integer
Dim RESULT As Integer
Dim CELL As RANGE
For Each CELL In rRANGE
RESULT = RESULT + WorksheetFunction.CountIf(vTEXT, "=*" & CELL & "*")
Next
NumberContaining = RESULT
End Function