Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Why doesn't this line of code work:
ActiveWorkbook.Close savechanges = False nor does this one: Databook.Close savechanges = False in both cases above the file gets saved even though it shouldn't but this one works DataBook.Close False all variables are declared code excerpt: For i = 1 To 10 Workbooks.Open .Files(i) Set DataBook = ActiveWorkbook For Each ws In ActiveWorkbook.Worksheets ws.Activate MonthStamp Range("data").Copy NewWkBook.Activate ActiveSheet.Paste Next DataBook.Activate Application.DisplayAlerts = False DataBook.Close False 'this works 'ActiveWorkbook.Close savechanges = False doesn't work NewWkBook.Activate Next i |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Have you tried this code instead?
ActiveWorkbook.Close SaveChanges:=False I think you need the colon in there. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
There are two problems at work here.
ActiveWorkbook.Close savechanges = False First, you don't have Option Explicit in your module. Therefore, VBA will declare a variable when it encounters a variable name and give it a default value. The second problem is that you are missing the colon in the named argument assignment. Without the colon, VBA sees 'savechanges' as a variable name, not a named argument, so it creates the variable and gives it a default value of False (since it is used to compare against the boolean value False). Therefore, your code is the same as ActiveWorkbook.Close (False = False) doesn't work And since 'False = False' evaluates to True, you are passing a value of True to the first argument of Close, which causes the workbook to be saved. All that said, you need to include the colon in the named argument assignment: ActiveWorkbook.Close savechanges:= False -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Dee Veloper" wrote in message om... Why doesn't this line of code work: ActiveWorkbook.Close savechanges = False nor does this one: Databook.Close savechanges = False in both cases above the file gets saved even though it shouldn't but this one works DataBook.Close False all variables are declared code excerpt: For i = 1 To 10 Workbooks.Open .Files(i) Set DataBook = ActiveWorkbook For Each ws In ActiveWorkbook.Worksheets ws.Activate MonthStamp Range("data").Copy NewWkBook.Activate ActiveSheet.Paste Next DataBook.Activate Application.DisplayAlerts = False DataBook.Close False 'this works 'ActiveWorkbook.Close savechanges = False doesn't work NewWkBook.Activate Next i |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks CJ, Thanks Chip
that was a "doh" moment for me. ;) "Chip Pearson" wrote in message ... There are two problems at work here. ActiveWorkbook.Close savechanges = False First, you don't have Option Explicit in your module. Therefore, VBA will declare a variable when it encounters a variable name and give it a default value. The second problem is that you are missing the colon in the named argument assignment. Without the colon, VBA sees 'savechanges' as a variable name, not a named argument, so it creates the variable and gives it a default value of False (since it is used to compare against the boolean value False). Therefore, your code is the same as ActiveWorkbook.Close (False = False) doesn't work And since 'False = False' evaluates to True, you are passing a value of True to the first argument of Close, which causes the workbook to be saved. All that said, you need to include the colon in the named argument assignment: ActiveWorkbook.Close savechanges:= False -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Dee Veloper" wrote in message om... Why doesn't this line of code work: ActiveWorkbook.Close savechanges = False nor does this one: Databook.Close savechanges = False in both cases above the file gets saved even though it shouldn't but this one works DataBook.Close False all variables are declared code excerpt: For i = 1 To 10 Workbooks.Open .Files(i) Set DataBook = ActiveWorkbook For Each ws In ActiveWorkbook.Worksheets ws.Activate MonthStamp Range("data").Copy NewWkBook.Activate ActiveSheet.Paste Next DataBook.Activate Application.DisplayAlerts = False DataBook.Close False 'this works 'ActiveWorkbook.Close savechanges = False doesn't work NewWkBook.Activate Next i |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
workbook before close | Excel Discussion (Misc queries) | |||
ex03 file saved at 9000Kb. close immediately & size goes 16000kb | Excel Worksheet Functions | |||
Why does only one document close without asking to be saved? | Excel Discussion (Misc queries) | |||
How can I see a copy of a saved workbook before I saved it again? | Excel Worksheet Functions | |||
Changes are saved to workbook even though I chose "No" when selecting close | Excel Programming |