Er gibt dir die Bereiche so wie er sie selbst versteht.
Ein select macht man dort nunmal von SheetXXX$ und bei einer named Range ist es nunmal andersrum: $Rangename.
GetTableNames ist für diejenigen gedacht, die sich
SQL ohne wissen der Datenquelle zusammenbauen.
Das was du da machen willst ließe sich sicherlich auch über Automation von Excel selbst lösen. (Der Excel Jet provider braucht doch auch ein installiertes Excel, oder?
)