Speed of REPLACE-just curious

M

Myles

Can someone explain why the use of REPLACE in VBA is lightening fast
relative to normal looping? The marked disparity in the speed of
execution of the following 2 codes highlights the point.


Sub ReplaceFunction()
Range("A1: BQ5000").Replace, "ALPHA", "BETA", xlWhole
End sub

Sub ReplaceViaLoop()
Dim c as Range

For each c in Range("a1:bq5000")
if c.value="ALPHA" then
c,value ="BETA"
end if
next

End Sub

Surely the underlyng code of the REPLACE function must be attempting
some looping, whatever the language used (VB6?). I don't wish to
believe that VBA is intrincically slower than VB6.

Myles
 
J

Jim Jackson

In the VBA Loop, the process checks one cell at the time, causing the slower
operation time. The REPLACE option locates every instance simultaneously and
makes the replacements all at the same time.
 
M

Myles

Jim wrote:

The REPLACE option locates every instance simultaneously and
makes the replacements all at the same time.

Jim,

It would seem to me that this is a lofty statement indeed. Is it reall
conceivable for a code to touch on each and every cell in a rang
SIMULTANEOUSLY, in real time one might add. Surely, if the REPLAC
algorithm does not "loop", it must be doing some form of scanning. Bu
then "loop" or "scan", is that not a semantic hood.


myle
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top