Save= False Question

J

John Baker

Hi:

I have a macro that includes the following:

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!

Thanks

John Baker
 
J

Jan Karel Pieterse

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
 
S

Simon Murphy

John
ActiveWorkbook.Close false
works for me
or
ActiveWorkbook.Close savechanges:=false

you could also try adding
ActiveWorkbook.saved = true
before you close to clear the 'needs saving' flag

I also open stuff read only where possible
Cheers
Simon
-----Original Message-----
Hi:

I have a macro that includes the following:

ActiveWorkbook.Close Save = False

I had anticipated that this wold result in the
spreadsheet being closed but NOT being
 
J

John Baker

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
 
J

John Baker

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
 
T

Tom Ogilvy

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.
 
Top