Custom function to search a string of text for certain values occu
Public Function rcmnf(eqn1)
Dim v as Variant
v = Range("NF_range").Value
For i = LBound(v,1) To UBound(v,1)
for j = lbound(v,2) to ubound(v,2)
cnt = Application.CountIf(eqn1, "*" & v(i,j) & "*")
totcnt = totcnt + cnt
Next j
Next i
rcmnf = totcnt
End Function
Put the function in a general/standard module (insert=Module in the VBE).
Not in the sheet module or the ThisWorkbook module.
--
Regards,
Tom Ogilvy
"MikeCM" wrote:
I tried to put it into a custom function, called "rcmf". This
function would have a single argument, eqn1, being a single cell that
contains a big whole string of text made up of a series of values,
which are separated variously within the cell by spaces, parentheses,
etc..
I have a list of values elsewhere, a range of cells called NF_Range.
The function is intended to return a total of all the TRUE answers for
each test of the string against each of the values listed in NF_range
list.
The function was looking as follows:
Public Function rcmnf(eqn1)
Dim v is Array(NF_range)
'comment: where NF_range is the name given to a range of cells
containing the values I wish to check the "aggregate boolean frequency"
of occurrence in the single cell the function points toward
For Each eqn1 In Selection
For i = LBound(v) To UBound(v)
cnt = Application.CountIf(cell, "*" & v(i) & "*")
totcnt = totcnt + cnt
Next
Next
End Function
When I say "aggregate boolean frequency" what I mean is take the first
value in NF_range and if it exists in the string on one or more
occasion(s), then count this as value 1 and move on to the next value
in NF_Range, and if that exists in the string on one or more
occasion(s), then count this as value 1 and add it to the previous
running total from the prior values checked in NF_Range, etc. etc.
I know this custom function isn't right, but I'm unsure about how to
proceed to
adapt your suggestion. Thank you for anyone providing thoughts already.
Any further thoughts? Thanks.
Mike
|