The calculated distance (air line) between Viborg and Silkeborg is approximately 20 miles respectively 33 kilometers.
By car or train, the actual journey to Silkeborg is certainly longer, as only the direct route (as the crow flies) between Viborg and Silkeborg has been calculated here.