There are
391 mi
from Elgin, IL to Ham Lake, MN
That's the driving distance. It would take 7 hours 15 mins to go from Elgin, Illinois to Ham Lake, Minnesota.
The flight distance (direct flight from Elgin, IL to Ham Lake, MN) is 333.05 mi.
391 mi = 629.67 kms