"HM_Inputs and HM_Outputs ranges actually only refer to one cell " - yes, that was an artifact left over from the previous method. If I had them referring to the entire 8760 row range, would that have made the difference for your previous code?

So this latest version works great in the original workbook. The execution time is still 20 minutes. I still like the programming exellence of your method, and I've wanted to learn to use variable arrays for awhile, so thanks for giving me a practical entry.

But, is this as good as it gets? 20 minutes to complete? Is there any other kind of coding approach you would suggest I explore?