When pasting code, type the code tags or click the # icon in the reply toolbar. Paste between tags.
As had similar questions as p45cal. I assumed that you meant range object names for Run and Hundred.
Test this on a backup copy. If you do a lot of this, I would poke the values for DoIt() into and array and iterate that for the calls.
Sub Main()
Dim ws As Worksheets
Set ws = Worksheets("Sheet2")
On Error GoTo endMain
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
DoIt [A307], 406, "Fed_R_", ws
DoIt [A408], 507, "off_", ws
DoIt [A509], 608, "pop_", ws
endMain:
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Sub DoIt(rA As Range, sR As String, wD As Worksheet)
Dim i As Integer, a(1 To 100, 1 To 3)
For i = 1 To 100
a(i, 1) = Range("Hundred")(i, 1)
a(i, 2) = Range("Hundred")(i, 2)
a(i, 3) = wD.Range("Fed_A_" & Range("Run")(i, 2).Text)
Next i
rA.Resize(100, 3).Value = a
wD.Range(wD.Cells(rA.Row, "D"), wD.Cells(rA.Row + 99, "EE")) = vntData_R
Range(rA, Cells(rA.Row + 99, "D")).Name = sR & Range("Run").Text & "_Mapped"
End Sub