Well, I would think that using the inbuilt functions should improve the performance, so I'd say yes.
Although I don't know how much of a difference it makes running a WS function within code as opposed to in a cell formula.
-- Does anyone else have a comment here?
As a test, I created this macro,
Function addOne(v)
addOne = v + 1
End Function
set A1= 1, A2= "=addOne(A1)" and filled down. After a minute and a half of waiting I broke out of the calculation. Reducing the number of formulas to 1000, the calculation time on my PC was about 7 seconds. Compared to a complete column of the equivalent cell formula "=A1+1", which calculated in a flash of the screen, it's clear that the overheads involved in running VBA code can be significant.
Also: I just tried the same comparing 1500 vlookups with 1500 cells using this function,
Function myV(lookup_value, table_array, colindex, rangelookup)
myV = Application.WorksheetFunction.VLookup(lookup_value, table_array, colindex, rangelookup)
End Function
again - the vlookups were pretty much instantaneous, while the myV function calculation took ~4 seconds.
While 4 seconds may not seem like much, these times are all based on simple dummy data, and with further dependencies, the differential in calculation time can grow to be significant (and frustrating!)
...But in any case, removing the looping thorugh cells in your original code (as you have done) is a good step.
Rick 
Melbourne, Australia