Quelle est la différence entre dim et mis en vba

Pardonnez-moi comme je suis un débutant en VBA.

Parfois j'utilise

Dim r as Range
r = Range("A1")

D'autres fois je utiliser

Set r = Range("A1")

Quelle est la différence? Et quand dois-je utiliser quoi?