You can find out the number of open tables with the N Table() function, and then get each name by looping through the open tables and asking for each table's name
Names Default To Here( 1 );
For( i = 1, i <= N Table(), i++,
Show( Data Table( i ) << get name )
);
Below is one example of how I deal with the need to point directly at a data table, which allows one to switch between them.
Names Default To Here( 1 );
dtLIst = {};
For( i = 1, i <= N Table(), i++,
dt = data table(i);
insert into(dtList, dt );
);
eval(dtList[1]) << new column("added column", set each value(5));
dtList[2] << bivariate();
Jim