Quote Originally Posted by penfold1992 View Post
is there any other way I can get around that? The range will always be constant to the workbook and macro.
Is it possible to do something like...
Dim RAW As ListObject
    Set RAW = ThisWorkbook.Sheets("Data").ListObjects("Table_owssvr_1")
would that work better or no different?
(I assume you are talking about the "ListObject" table.)
Yes it is possible and it is syntactically correct. Only you can know if the data and reference are truly static. I find that, when I have done this sort of thing in the past thinking that it would always be static, when I come back to it, I tend to wish that I had coded it as an argument rather than hard coding it into the body of the function. Maybe think of it as a useful "best practices rule" (for which there will occasionally be exceptions). Many of us on here believe that passing data through the argument list is the best way to do it -- if you think your situation warrants an exception to this "rule", then you can certainly do it the way you are proposing.

One way or another, it seems that the solution to your problem is to make sure that Excel/VBA cannot accidentally pull data from somewhere other than the intended range.