View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Elapsed time to run code

According to this article, VBA.Timer's resolution is 1 second.

http://support.microsoft.com/default...b;en-us;172338
How To Use QueryPerformanceCounter to Time Code


It also provides other methods for higher resolution.

--
Regards,
Tom Ogilvy


"keepITcool" wrote in message
ft.com...
ouch..

my mistake it should be
vba.timer
timer

also not messagebox but msgbox.

dim lTime& means Dim lTime as long
the & is a so-called TypeDeclaration character.





--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


Otto Moehrbach wrote :

I appreciate your help. What you have looks much better than my
method. However, I get an error "Object doesn't support this
property or method." with the line:
lTime = application.timer *1000

Also, what does "Dim lTime&" mean? I'm familiar with declarations
but not with the use of the "&" sign in them. Otto
"keepITcool" wrote in message
ft.com...
you'll never get reliable timings like that


for "reasonable" timers use s't like:

dim lTime&
lTime = application.timer *1000
'code
lTime = -lTime+application.timer *1000
messagebox ltime & "msecs"

I believe that application.timer ticks each 35 or 55 milliseconds
(or sometihng)

So for benchmarking you;ll need to run your codes a few times
(or a few 1000 if your testing functions ;)

For far more reliable timings you'll need API functions.
I always use CStopWatch from KarlPeterson.
http://www.mvps.org/vb/samples.htm






--
keepITcool
www.XLsupport.com | keepITcool chello nl | amsterdam


Otto Moehrbach wrote :

Excel 2002, WinXP
I have the following code to give me the elapsed time for a macro

to run.

Time1 = Time
'My code
Time2 = Time
MsgBox Time1 & " " & Time2
MsgBox Format(Time2 - Time1, "00:00:00")

The first MsgBox gives me 2 times that are some 17 seconds apart.
That's accurate.
The second MsgBox shows 00:00:00 no matter what.

What is wrong with the second MsgBox line?

Thanks for all your help. Otto