parent/child ranges

S

Susan

#1 question - does VBA automatically know that the 1st workbook (that
contains the sub) is the parent, & subsequent workbook(s) opened are
the child?? or do i have to tell it that?

i have a large list of non-contiguous range data that needs to be
transferred between 2 workbooks (from parent to child). parent &
child's set-ups are NOT similar.

i tried this approach, first...
Sub testing()
'wb = ezmarkbook
'ws = ezmarkbook.dataentry.page
'newwb = student profile
'newws = student profile.unit page

Set wb = ActiveWorkbook
Set ws = ActiveSheet

Workbooks.Open Filename:="F:\Susan\SchoolProject.xls"

Set newWB = ActiveWorkbook
Set newWS = ActiveSheet

Call copy

End Sub



Public Sub copy()

Set rHere = wb.ws
Set rThere = newWB.newWS

rThere.Range("h8") = rHere.Range("f3")
rThere.Range("c7") = rHere.Range("e3")

col.copy Destination:=myNewRange

End Sub


obviously, this doesn't work. you can see that i was trying to
shorten the amount of typing i would have to do. maybe they should be
sThere & sHere???

rThere.range instead of newwb.newws.range

but like i said, it isn't working. in researching it i stumbled
across the parent-child concept.

there is no rhyme or reason for making a for-each-next loop, so i'll
have to tell each range specifically where it goes. could somebody
please give me some direction on if this is possible to shorten up or
not?
thanks a lot!
susan
 
G

Guest

I am not sure where you stumbled across the parent child concept, but to the
best of my knowledge there is no such relationship between workbooks opened
in the same instance of excel. from and object perspective, all workbooks
are children of the application object and sheets are children of the
workbook object of their respective workbooks.

Thisworkbook refers to the workbook that contains the code.

Activeworkbook to the workbook that currently has the focus in Excel.

Sub testing()
Dim wb as Workbook, ws as Worksheet
Dim newWb as Workbook, ws as NewWs



Set wb = ThisWorkbook
wb.activate
Set ws = ActiveSheet

Workbooks.Open Filename:="F:\Susan\SchoolProject.xls"

Set newWB = ActiveWorkbook
Set newWS = ActiveSheet

Call copy ws, newws

End Sub

Public Sub copy(Here as Worksheet, There as Worksheet)

There.Range("h8") = Here.Range("f3")
There.Range("c7") = Here. Range("e3")

'col.copy Destination:=myNewRange

End Sub

--
Regards,
Tom Ogilvy



If your code opens workbooks, then you could maintain a reference to them in
your code.
 
G

Guest

The parent and child references in that post were whimsical in nature, used
to suggest one being a subset of the other.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top