This one of those problems where you know something is wrong but just can't see it. Actually I'm suprised example 1 worked, date literals are usually surrounded by # signs.
dteTo is a Short-Date formatted cell in Excel
I'm pretty sure the datatypes are mismatched and that by using the
text property, something got messed up.
Try using
dteTo = Range("D28").ValueYou might try using
Range("D28").Value directly in the
DateDiff function or as a last resort using the
CDate function to guarantee all the fields are converted to dates.
Good luck.

PS. VB and VBA are not very forgiving when it comes to mismatched datatypes.