Harley Walsh
Harley Walsh

Reputation: 43

Reference an excel sheet from another workbook without copying the sheet

Im wondering if it's possible to reference an excel sheet from another work book without making a copy of that sheet?

The situation : I have some very large worksheets filled with various data, but i don't want to keep a copy of them open in my workbooks because while each workbook uses the same data source, they're slightly different.

I have a vba routine that takes this data and creates input files for other codes, vba expects this data to be available on the defined sheet names.

Is it possible to make either excel or vba to know that when i request worksheet("Example_1") it instead knows that i mean example_1 from a different workbook?

Thanks

Upvotes: 2

Views: 87361

Answers (2)

Mark Butler
Mark Butler

Reputation: 895

=SUM('C:\test\[test.xlsx]sheet_name'!A1:A25)

is an example of a formula which references sheet sheet_name in workbook C:\test\text.xlsx.

Note that when the other workbook is opened, the formula automatically changes to

=SUM([test.xlsx]sheet_name!A1:A25)

and then when it is closed, the formula will change back.

Upvotes: 2

mielk
mielk

Reputation: 3940

Yes, it is possible.

You need to add those lines to your code:

Dim wkb As Excel.Workbook
Dim wks As Excel.Worksheet

Set wkb = Excel.Workbooks("name_of_workbook.xlsx")
Set wks = wkb.Worksheets("Example_1")

Now, every time you want to refer to a range from this other workbook, you need to add wks. before, i.e.:

'Printing value in cell.
wks.Range("A1") = "x"

'Selecting range.
call wks.Range(wks.Cells(1,1), wks.Cells(2,2)).Select

Upvotes: 8

Related Questions