I am not sure the for loop is your biggest problem. Is there a reason you are pulling in 322,000 rows for each array every time. Is there a set number of entries? If there is usually less than that you can just pull in what is needed and run through that (since you only run through 234,100 for the bigger array anyway).
You can also move certain things around to require less calculations such as moving the MyVar = DataRange(Irow,1) before the second for loop starts. This will take out (234,100 x 321,999) calculations that the macro has to run.
I like Olly's solution. Nice and simple. No pulling data into arrays.
Bookmarks