[OPINION]

I've had to debug too many "WTF happened?" because someone assumed that Sheet1 was the active sheet, but the user (can never trust them) switched to Sheet2 to look at something; so I always include the WS parent.

If there is absolutely no possibility of ambiguity (e.g.Aflatoon's WS code module example) I might forgo the Me. reference, but typically don't. I'd rather type too much by habit instead of too little and then have to spend time and effort debugging and fixing

Someone called it "Defensive Programming"

For the same reason, I prefer to use worksheet code names for sheets that won't get changed (e.g. Lookup values, config parameters, etc.) so that if the user (still can't trust them) renames the WS, the code still works. However, if I think the user is less experienced, I'll leave it as Worksheets("Data").Cells(1,1).Value and not Data.Cells(1,1).Value since they are most likely more familar with the former systax.

Finally, FWIW the only time I've ever seen Application specified was as a property to Excel, i.e.

    Dim xl1 As Object, xl2 As Object
    
    Set xl1 = Excel.Application
    Set xl2 = Excel.Application
[/OPINION]