Код здесь, очевидно, не должен компилироваться, очевидно, что вы не показываете свой реальный код. Например, какова ваша обработка ошибок? Если вы сделали что-то вроде On Error Resume Next, то если в следующих строках появятся ошибки, об ошибках не будет сообщено.
Set objProjection = CreateObject("Eye4Software.GpsProjection")
Set objDatumSrc = CreateObject("Eye4Software.GpsDatumParameters")
Set objDatumDst = CreateObject("Eye4Software.GpsDatumParameters")
Поскольку для них задано значение Nothing, если вы попытаетесь выполнить методы и свойства для objProjection, objDatumSrc и objDatumDst, они вызовут ошибку «Требуется объект».
И поскольку это, вероятно, не тот код, который вы пытались запустить, можете ли вы проверить, что все идентификаторы программ, например, "Eye4Software.GpsProject" правильный? На самом деле - вы зарегистрировали эти компоненты? И почему вы не можете создать экземпляр этих объектов, используя немного более чистую запись, например,
Set objProjection = New Eye4Software.GpsProjection