Taking a guess
data=storm.&&basinname&i.._Storms;
should be
data=storm.&&basinname&i..._Storms;
with three dots.
But really, don't make us guess, show us the log whenever you get errors, not just the errors in the log, we need to see the entire log for the macro. (And don't wait until we ask for the log either)
The underlying idea of your macro, to split a data set into smaller pieces, is something that we advise against in most cases. If you leave the data set as one big data set, you can access the parts that you want using a WHERE statement, or perform analyses using a BY statement. So, in most cases, do not split a large data set into many smaller data sets.
... View more