[excel] Setting value of active workbook in Excel VBA

I for now have my workbook set up this way, in where the workbook is hard coded into the Set command, I am wondering if there is a way of doing this so I can have it where it is fluid? So no matter where this code is place (in another workbook) the code will adapt to it's new surroundings.

Does this make sense?

Below is what I am using now, what I'd like to have it do is for the ActiveWorkbook or something of the sort be used instead. Since this will be set at the beginning of the code and not the middle.

Set wbOOR = Application.Workbooks("Open Order Report.xlsm")

This question is related to excel vba

The answer is


You're probably after Set wbOOR = ThisWorkbook

Just to clarify

ThisWorkbook will always refer to the workbook the code resides in

ActiveWorkbook will refer to the workbook that is active

Be careful how you use this when dealing with multiple workbooks. It really depends on what you want to achieve as to which is the best option.


Try this.

Dim Workbk as workbook
Set Workbk = thisworkbook

Now everything you program will apply just for your containing macro workbook.


This is all you need

Set wbOOR = ActiveWorkbook