What happens? Wrong results or an error message? Noticeable is the semi-colon behind the NEXT then control-statements like SUB / IF / FOR will be written without one. Further you load with a field-wildcard - are the sheets not absolute equal they won't be automatically concatenated - you will get two tables and by many identical fields a lot of synthetic keys which will need a lot of ressources to be calculated.
The same script worked for me. It loaded data from two sheets 2009 and 2010. Please check the sheet names for any typos in your excel file such as leading or trailing spaces etc. Just verify to load only sheet 2010 by changing for each statement like below
for each vSheet in '2010'
Though semicolon after NEXT may not give any error, it is not required.
Please let us know the output.
I think that the problem is the crosstable. The first XL tab is loaded and then crosstabled. When the next tab is loaded and compared to the existing QV table and sees it as different, so it creates a second table, which it then cross tables.
What you need to do is load both tables without the crosstable, and then perform the crosstable to the resident table, like this:
For Each vSheet in '2009', '2010'
FROM [C:\Badri\Al Ain Ahlia Insurance\AAIC Classwise UW results.xlsx]
(ooxml, embedded labels, table is $(vSheet));
Drop Table T_Data;