I have a procedure that reads data from another workbook.

If the data workbook is not open it is opened and data is extracted, then the workbook is closed.

If the data workbook is already open the procedure needs the data in the saved data workbook and not the one that is open which might have unsaved changes. How could I accomplish this?

Is there a way to have multiple instances of the same workbook which is located in the same place in the file system?
Is it possible to extract information from a workbook without opening it? I don't have much experience with external references but could they be used for this purpose?

I've thought of making a temporary copy of the workbook on file and opening it to extract the data.

Any suggestions are most welcome.