Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default excel VBA problem - setting workbook as variable & opening/re-opening

hello all (my first post )

first of all, i'm delighted to have found this forum, having taugh
myself as much as i can of Excel VBA (& enjoyed doing so) its good t
find others with a similar interest

anyway, the reason i got here is, i'm having a problem & woul
appreciate some assistance

i'm trying to use vba to open a workbook, (which i don't know the nam
of so the workbook name is a variable) once open i'm copying a shee
from this workbook into my workbook (so my master workbook is active
the variable workbook isn't) I then wish to close the "variable
workbook so i need to re-activate this workbook to close

the problem i'm having is that i've tried this 2 ways & neither wil
work. i either can't set the variable as a workbook, or i can't cal
the workbook i've set as a variable

the code is as below, this may explain what i'm doing better than i ca


*version 1* - declaring variable as workbook, won't allow me to set th
variable (i get an "object required" error at line 2)

Sub import1()

Dim myfile1 As Workbook

Set myfile1 = Application.GetOpenFilename("excel files, *.xls")
Workbooks.Open FileName:=myfile1

Sheets("data").Select
Windows.Arrange ArrangeStyle:=xlTiled
Sheets("data").Select
Sheets("data").Move Befo=Workbooks("master").Sheets(1)

myfile1.Activate
ActiveWorkbook.Close False

End Sub

*version 2* not delaring variable allows the file to be opened & th
sheet to be imported into the master sheet, but fails at line 7 when
try to re-activate my variable workbook (subscript out of range error
I've tried workbooks(-name-).activate also


Sub import1()

myfile1 = Application.GetOpenFilename("excel files, *.xls")
Workbooks.Open FileName:=myfile1

Sheets("data").Select
Windows.Arrange ArrangeStyle:=xlTiled
Sheets("data").Select
Sheets("data").Move Befo=Workbooks("master").Sheets(1)

Windows(myfile1).Activate
ActiveWorkbook.Close False

i suspect i've made a basic mistake, but as i've said, i'm self taugh
so there are a lot of gaps in my knowledge!

any & all suggestions gratefully received - thank

--
Message posted from http://www.ExcelForum.com

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,824
Default excel VBA problem - setting workbook as variable &opening/re-opening

dim mstrwkbk as workbook
dim wkbk as workbook
dim myFileName As Variant

myFileName = Application.GetOpenFilename
If myFileName = False Then
Exit Sub 'user hit cancel
End If

set mstrwkbk = activeworkbook 'workbooks("master.xls") '???

set wkbk = workbooks.open(filename:=myfilename)

wkbk.worksheets("data").copy _
befo=mstrwkbk.worksheets(1)

wkbk.close savechanges:=false


=====
You can do lots of things without selecting. Just refer to those objects
directly.


"safe <" wrote:

hello all (my first post )

first of all, i'm delighted to have found this forum, having taught
myself as much as i can of Excel VBA (& enjoyed doing so) its good to
find others with a similar interest

anyway, the reason i got here is, i'm having a problem & would
appreciate some assistance

i'm trying to use vba to open a workbook, (which i don't know the name
of so the workbook name is a variable) once open i'm copying a sheet
from this workbook into my workbook (so my master workbook is active &
the variable workbook isn't) I then wish to close the "variable"
workbook so i need to re-activate this workbook to close

the problem i'm having is that i've tried this 2 ways & neither will
work. i either can't set the variable as a workbook, or i can't call
the workbook i've set as a variable

the code is as below, this may explain what i'm doing better than i can

*version 1* - declaring variable as workbook, won't allow me to set the
variable (i get an "object required" error at line 2)

Sub import1()

Dim myfile1 As Workbook

Set myfile1 = Application.GetOpenFilename("excel files, *.xls")
Workbooks.Open FileName:=myfile1

Sheets("data").Select
Windows.Arrange ArrangeStyle:=xlTiled
Sheets("data").Select
Sheets("data").Move Befo=Workbooks("master").Sheets(1)

myfile1.Activate
ActiveWorkbook.Close False

End Sub

*version 2* not delaring variable allows the file to be opened & the
sheet to be imported into the master sheet, but fails at line 7 when i
try to re-activate my variable workbook (subscript out of range error)
I've tried workbooks(-name-).activate also

Sub import1()

myfile1 = Application.GetOpenFilename("excel files, *.xls")
Workbooks.Open FileName:=myfile1

Sheets("data").Select
Windows.Arrange ArrangeStyle:=xlTiled
Sheets("data").Select
Sheets("data").Move Befo=Workbooks("master").Sheets(1)

Windows(myfile1).Activate
ActiveWorkbook.Close False

i suspect i've made a basic mistake, but as i've said, i'm self taught
so there are a lot of gaps in my knowledge!

any & all suggestions gratefully received - thanks

---
Message posted from http://www.ExcelForum.com/


--

Dave Peterson

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How do I stop blank workbook from opening when opening an existing kjg Excel Discussion (Misc queries) 3 February 12th 10 09:36 PM
Problem when opening a workbook Vasil Ivanov Setting up and Configuration of Excel 2 October 27th 06 07:06 PM
Problem with opening an Excel 2000 workbook in Excel 2003 Frank Krogh[_2_] Excel Programming 0 June 3rd 04 11:31 AM
Problem with opening an Excel 2000 workbook in Excel 2003 Frank Krogh Excel Programming 0 June 3rd 04 07:41 AM
Problem with opening an Excel 2000 workbook in Excel 2003 Frank Krogh Excel Programming 0 June 2nd 04 11:55 AM


All times are GMT +1. The time now is 08:45 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"