I believe RENAME TABLE should use the table name vTableName, not the number vTableNo as source table name.
Using dollar sign expansion might also be required to get the variable values.
Rename Table $(vTableName) to $(svalue);
Then I am not sure what you are trying to achieve here, do you want to rename all tables to the same name?
I don't think that can work (well, haven't tried it).
Or do you want to do something else?
And here is a sample bit of script:
For vTableNo = 0 to NoOfTables() -1
trace vTableNo: $(vTableNo) ;
let vTabNum = $(vTableNo) +1 ;
trace vTabNum: $(vTabNum) ;
let svalue='tab' & $(vTabNum) ;
trace svalue: $(svalue) ;
Let vTableName = TableName($(vTableNo)) ;
trace vTableName: $(vTableName) ;
Rename Table $(vTableName) to $(svalue) ;
The trace command is always useful when debugging thing like this, I have whacked a few in so you can see what it is doing.