It has only worked fine by mistake
You can have named arguments or unamed arguments
if you don't have option explicit at the top of your procedure, you can put
in something like
Activeworkbook.Save SaveChanges = False
this would be seen as
Activeworkbook.Save SaveChanges:=True
to demonstrate, from the immediate window:
? Savechanges = False
True
the uninitialized variable SaveChanges is seen as False or zero in the
comparison to False (which is what you equal sign says to do in this
context).
So if you used that construct anywhere a -1 or a true is accepted, then it
would work - even though it is not used correctly.
To summarize, such usage appears to the parser that you are using unamed
arguments and you are passing an expression to be evaluated as the first
argument.
--
Regards,
Tom Ogilvy
"John Baker" wrote in message news:ni05f0tc3h
...
Sorry I found the mistake.
I had not put a : before the = sign!
Its unusual to require that..I have used just = in many other situations
and it works just
fine.
Best
John
John Baker wrote:
Jan:
The macro is as follows now and it STILL saves the spreadsheet! Any
suggestions?
:
Sub InstallNo()
'
' InstallNo Macro
' Macro recorded 07/02/2004 by John H Baker
'
Msgbox ("You have elected not to install the new version of the
spreadsheet. If you change
your mind you may reopen this sheet and restart the installation process
later.")
ActiveWorkbook.Close SaveChanges = False
'
End Sub
Jan Karel Pieterse wrote:
Hi John,
ActiveWorkbook.Close Save = False
I had anticipated that this wold result in the spreadsheet being
closed but NOT being
saved. However, it appears that its being saved as its being closed.
Can someone suggest a reason, and more important, a way to prevent it
being saved!
The proper syntax is:
ActiveWorkbook.Close SaveChanges:= False
Regards,
Jan Karel Pieterse
Excel MVP
www.jkp-ads.com