Fairwinds, - you are right, to have a bunch of nested array formulas might turn into a living hell
I played with the code a bit and came up with this one modification of the a.m. formula, which is calculating all the cells in a specified range, even if there are some empty cells in the range.
I am sure the code might be written smoother, but this one works for me, I would be glad to digest a healthy portion of criticism.
<font face=Courier New><SPAN style="color:#00007F">Function</SPAN> ShowLongestWord(<SPAN style="color:#00007F">ByVal</SPAN> rng <SPAN style="color:#00007F">As</SPAN> Range)
<SPAN style="color:#00007F">Dim</SPAN> str <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> x <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> i <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> c <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> LongestWord <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>
ShowLongestWord = <SPAN style="color:#00007F">Empty</SPAN>
<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> c <SPAN style="color:#00007F">In</SPAN> rng
<SPAN style="color:#00007F">If</SPAN> IsEmpty(c) <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">GoTo</SPAN> empty_c:
str = c
str = Application.Trim(str)
x = Split(str, " ")
LongestWord = x(0)
<SPAN style="color:#00007F">For</SPAN> i = 1 <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(x)
<SPAN style="color:#00007F">If</SPAN> Len(x(i)) > Len(LongestWord) <SPAN style="color:#00007F">Then</SPAN>
LongestWord = x(i)
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
empty_c:
<SPAN style="color:#00007F">Next</SPAN> i
<SPAN style="color:#00007F">If</SPAN> Len(LongestWord) > Len(ShowLongestWord) <SPAN style="color:#00007F">Then</SPAN>
ShowLongestWord = LongestWord
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Next</SPAN> c
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Function</SPAN>
</FONT>