Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi there
I'm having some trouble with a bit of VBA code, and its confusing me. The code is (something like) sThisBook = ActiveWorkbook.Name Set wkbSource = Workbooks.Open(sPath) If Len(sThisBook) 0 Then '... this makes the original workbook active Workbooks(sThisBook).Activate End If (I've precied it slightly) What I find is that: a) If I am running this code in the context of a new blank "Book1.xls" then after the other workbook has been opened only that book is open. i.e. workbooks.count is 1 and workbooks(1).name is the short version of the variable sPath Hence Workbooks(sThisBook).Activate fails with an error. Since its doing Workbooks("Book1.xls").Activate and that is no longer open. However, b) If I close book1 and click New so that I have "Book2.xls" then after the ..Open statement I have 2 workbooks and the .Activate does work since "Book2.xls" IS still open. Is Excel implicitly closing Book1 or am I missing something? Perplexed in England Rob |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I've just run the below and it works fine! The code is written into a
book called xxxx.xls and once the code has run book xxxx.xls is activated with PORTFOLIO being open aswell. J Option Explicit Sub xxxx() Dim sThisBook Dim wkbSource sThisBook = ActiveWorkbook.Name Set wkbSource = Workbooks.Open("H:\Miscellaneous\PORTFOLIO.xls") If Len(sThisBook) 0 Then '... this makes the original workbook active Workbooks(sThisBook).Activate End If End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Jase
Drat. Thanks for doing that, but now I'm even more confused. Rob "jase" wrote in message ups.com... I've just run the below and it works fine! The code is written into a book called xxxx.xls and once the code has run book xxxx.xls is activated with PORTFOLIO being open aswell. J Option Explicit Sub xxxx() Dim sThisBook Dim wkbSource sThisBook = ActiveWorkbook.Name Set wkbSource = Workbooks.Open("H:\Miscellaneous\PORTFOLIO.xls") If Len(sThisBook) 0 Then '... this makes the original workbook active Workbooks(sThisBook).Activate End If End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
the name of the default workbook is not book1.xls or book2.xls. Simply
book1 or book2 without any extension. Generally if you open a workbook with only the default workbook open (in a pristine condition), then the default workbook is automatically closed. You might write something to cell A1 or set Saved to False sThisBook = ActiveWorkbook.Name Activeworbook.Saved = False Set wkbSource = Workbooks.Open(sPath) workbooks(sThisBook).Activate -- Regards, Tom Ogilvy "Rob Kings" wrote in message ... Hi there I'm having some trouble with a bit of VBA code, and its confusing me. The code is (something like) sThisBook = ActiveWorkbook.Name Set wkbSource = Workbooks.Open(sPath) If Len(sThisBook) 0 Then '... this makes the original workbook active Workbooks(sThisBook).Activate End If (I've precied it slightly) What I find is that: a) If I am running this code in the context of a new blank "Book1.xls" then after the other workbook has been opened only that book is open. i.e. workbooks.count is 1 and workbooks(1).name is the short version of the variable sPath Hence Workbooks(sThisBook).Activate fails with an error. Since its doing Workbooks("Book1.xls").Activate and that is no longer open. However, b) If I close book1 and click New so that I have "Book2.xls" then after the .Open statement I have 2 workbooks and the .Activate does work since "Book2.xls" IS still open. Is Excel implicitly closing Book1 or am I missing something? Perplexed in England Rob |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Tom
Once again you have supplied the answer. Allow yourself a pat on the back. Many many thanks Rob "Tom Ogilvy" wrote in message ... the name of the default workbook is not book1.xls or book2.xls. Simply book1 or book2 without any extension. Generally if you open a workbook with only the default workbook open (in a pristine condition), then the default workbook is automatically closed. You might write something to cell A1 or set Saved to False sThisBook = ActiveWorkbook.Name Activeworbook.Saved = False Set wkbSource = Workbooks.Open(sPath) workbooks(sThisBook).Activate -- Regards, Tom Ogilvy "Rob Kings" wrote in message ... Hi there I'm having some trouble with a bit of VBA code, and its confusing me. The code is (something like) sThisBook = ActiveWorkbook.Name Set wkbSource = Workbooks.Open(sPath) If Len(sThisBook) 0 Then '... this makes the original workbook active Workbooks(sThisBook).Activate End If (I've precied it slightly) What I find is that: a) If I am running this code in the context of a new blank "Book1.xls" then after the other workbook has been opened only that book is open. i.e. workbooks.count is 1 and workbooks(1).name is the short version of the variable sPath Hence Workbooks(sThisBook).Activate fails with an error. Since its doing Workbooks("Book1.xls").Activate and that is no longer open. However, b) If I close book1 and click New so that I have "Book2.xls" then after the .Open statement I have 2 workbooks and the .Activate does work since "Book2.xls" IS still open. Is Excel implicitly closing Book1 or am I missing something? Perplexed in England Rob |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Problem with Macro working in new workbooks that I open | Excel Programming | |||
Excel 2003 Workbooks.Open with CorruptLoad=xlRepairFile fails on Excel 5.0/95 file due to Chart, with Error 1004 Method 'Open' of object 'Workbooks' failed | Excel Programming | |||
Workbooks.Open Beeping Problem | Excel Programming | |||
Excel: workbooks.open problem | Excel Programming | |||
Workbooks.Open / .Open Text - How do you stop the .xls addition? | Excel Programming |