EDIT: this was too quick, although working on a first glance this is not a solution - an excel process keeps being opened :-( Nontheless this should not be too hard to cleanly implement (at least not by the mathworks ^^)
The option I thought would work is a modification of xlswrite.m. Replacing the last block in the function by this
[~, sheets] = xlsfinfo(file);
sheetNames2remove = setdiff(sheets,sheet);
for i = 1:numel(sheetNames2remove)
did the trick for me (almost). Should work in basic excel mode and is language independent :-) Btw.: I'm still using R2012a - no idea if this still works in later (or earlier) releases...