I live in the Roanoke area, and there's two decent shops here.
Bryansteen's, more of a hunting type place, with decent handguns and milsurp selection but very thin on the AR/tactical stuff. Tend to be overpriced, but friendly people (except for the owner), and will order damn near anything. To get there, go up I-81 to 581, then take exit 2S (Peter's Creek Rd) about half a mile on the right.
Roanoke Firearms, shares a storefront with a pawnshop, which makes for some interesting clientele. Much smaller space-wise, but much more AR/tactical guns and gear, including Blade-Tech holsters and Blackhawk nylon. Better prices, IMHO as well. To get there, take I-81 to 581, then one more exit to 3W (Hershberger Rd), about half a mile right on the other side of Cove Rd. I go to one or both once a week or so if you need anything checked on.
In terms of ranges, it's either the Pandapas Range, the Potts Mountain range (up 311, 30 minutes past Catawba) or the private Roanoke Rifle & Revolver Club.