There are several factors to consider.
Where is the code residing in your book? In a Standard Module (from clicking Insert - Module), or in a built in Worksheet module?
Which sheet is currently active at the time the code runs ?
Code held in a Standard module, range (and cells) references will refer to the currently active sheet, unless otherwise specified.
Range("A1") - refers to the currently active sheet
Unless otherwise specified
Sheets("Sheet3").Range("A1") - refers to sheet3 regardless of which sheet is currently active.
Code held in an Object module like a Worksheet Module, range and cells references will refer to THAT object unless otherwise specified, regardless of the currently active sheet.
So in say Sheet3's module
Range("A1") - refers to Sheet3 regardless of currently active sheet
Unless otherwise specified
Sheets("Sheet1").Range("A1") - refers to Sheet1 regardless of currently active sheet and the module holding the code.
When you do this
Sheets("Sheet1").Range(Cells(), Cells())
You've specified the sheet on the RANGE, but have not specified it on the Cells, therfor allowing Cells to refer to whatever it defaults to depending on above rules.
If the Cells functions are referring to a sheet that is different from the sheet referenced by Range, then you get that error.
It is a 'Best Practice' to always qualify the sheet on all range and cells references.
Just so you don't have to worry about which sheet is currently active while your code is executing.
If it has worked for you in the past without specifying both, it is merely coincidental that both the Range and Cells functions were referring to the same sheet.
Hope that helps.