Works fine in debug, but...

D

DiBaco

Hi all,

I can't get my head around why this simple piece of code won't work in
release, but does in step-by-step debugging. This code is part of a
userform with two calendars on it.

Ideas anyone?

p.s. I'm guessing the Analysis Toolpack function "networkdays" is the
cause, but why?

Private Sub CalendarEnd_Click()

Dim sDay As Date
Dim eDay As Date
Dim nwDays As Integer

On Error GoTo Skip
sDay = CalendarStart.Value
eDay = CalendarEnd.Value

nwDays = networkdays(sDay, eDay)
If nwDays < 1 Then GoTo Skip
UserForm2.TextBox2.Value = nwDays

Exit Sub
 
T

tony h

A classic problem that is evidenced by code working when in debug but
not when run straight through is that there are other process that need
to be given processor time to complete. To do this programmatically you
use the doevents. Finding whereto put it is a bit more difficult but
with this short piece of code you could put a doevents between each
line.

If that works you could try removing them one by one until it goes
wrong again then you will know which is the important one (or more).

Hope this helps. let us know how you get on.

regards,
Anthony
 
D

DiBaco

Anthony ,
Thanks for the suggestions.
Tried this, no joy.

I've determined that the line nwDays = Networkdays(sDay, eDay) is
causing the error, Runtime 13, type mismatch.

I've tried other otions, like

eDay = CDate(eDay) and
eDay = Format(eDay, "dd/mm/yyyy")

and also tried Variant, Long etc. for the nwDays variable

Any other suggestions are more than welcome.
 
P

Peter T

Are you sure sDay & eDay both evaluate to +ve numbers

try
nwDays = networkdays(Date, Date + 21)

Regards
Peter T
 
D

DiBaco

sorry to say, same error

tries switching values with
If eDay < sDay Then

and If eDay > sDay Then

same error.

will try to build something from scratch and see what happens..

Thanks for your efforts
 
D

DiBaco

building from scratch doesn't give the error.... weird

guess I'll have to redo the whole thing...

:-(
 

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