Quote Originally Posted by Norie
I think you should probably try a different method of looping through the data.
That was the point I was making; I think we need to loop through the Rows collection of the range rather than the Cells collection.

In the original code, a new Access record is created for every non-zero cell in the range.

For example: if the range is B1:L100, this would give 1100 records (if each cell contains a non-zero value), as there are 11 columns of 100 rows in the range.