@Jerry,
Thanks for correcting my code. I had too little patience to test that code, but it also illustrates why I prefer the shorthand code. Because I'm not that good in counting () most of the time in this kind of case I build a string like this in this way: Instead of " I use ~ and replace them by chr(34).
But on second thought we don't even need this:
@keyston
Nice you found out yourself. I wouldn't have been able to detect that from a distance. But I also learned that you should avoid names for named ranges that have 'reserved names', be it by Excel or by yourself introducing macro/functions etc.
The code shg gave:
In fact he gives the 'longhand' version of 'evaluate':
He uses 'if( , )' to gain the arrayformula result. But as the 'if'-construction is purely introduced to convert the formula into an arrayformula a condition must be found that is always true for all cells in the range. Shg chooses row(), but it could also be column() or 12 or you name what.
In such a case I'd prefer the testing condition 'True', because that's the least confusing one.
For the whole usedrange:
To illustrate that a namedrange is an 'object', you can achieve the same result using an object-variable, for instance:
Bookmarks