It seems that variable "mydata" is of size [1x3] but the size of the range you elected is [1x1] (i.e. a single excel cell rather than a range of cells) in
xlCurrRange = xlsheet.Range(['A' num2str(newRange)]);
I think that instead of 'A301' you want to have 'A301:C301' which is
xlsheet.Range(['A', num2str(newRange),':C', num2str(newRange)]);
which should capture the full [1x3] size of "mydata"
Is this it or have I misunderstood?