The problem is running a macro with application.run returns exactly what that macro is programmed to do...
Here is my last ditch effort:
Sub RunOneSheet()
    For i = 5 To 3000
        If Cells(1, i) <> "" Then
            Columns(i).Select
            Application.EnableEvents = False
            Application.Run ("ThisWorkbook.RunDataInterpolateSheet")
            Application.EnableEvents = True
        End If
    Next i
End Sub