To copy data from different workbooks

G

Guest

i want to copy data from different workbooks..
Workbooks("sample.xls").Worksheets("sheet1").Range("A1:G4").Copy
Destination:=ActiveCell
macro copied contents from sample.xls..

then i want to append data from the other workbook(sample1.xls) depends upon
the range of the data..

this continues for n worksheets...


wat should i do for that..

kindly help me..
 
T

Tom Ogilvy

Dim rng as Range, rng1 as Range
set rng =Workbooks("sample.xls") _
.Worksheets("sheet1").Range("A1:G4")
rng.copy Destination:=ActiveCell
set rng1 = Workbooks("sample1.xls") _
.Worksheets("Sheet1").Range("A1:G10")
activecell.offset(rng.rows.count,0).Select
rng1.copy Destination:=ActiveCell

and so forth.


a more general approach would be

Dim rng as Range, i as Long
for i = 1 to 10
set rng = Workbooks("Sample" & i & ".xls") _
.Worksheets("Sheet1").Range("A1").currentRegion
rng.copy destination:= _
activesheet.cells(rows.count,1).End(xlup).offset(1,0)
Next

But that makes assumptions about what your data looks like and where it
should go. In any event, the more you can handle your requirement in general
terms, the shorter your code should be.
 
D

Dave Peterson

Which line?

It usually means that something you referred to doesn't exist.

Do you have an open workbook named Sample.xls?

Does that Sample.xls have a worksheet named Sheet1?

You may want to be more specific with which line in which routine causes the
error.
 
G

Guest

no my workbook sample.xls is not opened ..

yes,sample.xls have the sheet named sheet1

i want to copy without opening the worksheets sample,sample1
 
T

Tom Ogilvy

subscript out of range means that a name does not match the names used in
the code - the names provided by you for the workbook names. I used the
generic Sheet1 since you didn't say what sheet - so that was an assumption -
which you should naturally adjust to reflect the names of the actual sheet
in each workbook.
 

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