Вопрос внутри тела вашего поста (о коде) полностью отличается от вопроса в заголовке вашего поста.
Теперь я собираюсь ответить на первый очень буквально, с оговоркойчто это действительно плохой способ делать вещи.Вы просите что-то вроде этого:
Sub distance()
Dim i As Long
For i = 0 To 1236
Range("D4:E4").Offset(i, 0).Copy
Sheets("Analog Data").Select
Range("F3:G3").Offset(i, 0).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("D3:E3").Offset(i, 0).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Cluster 58").Select
Range("FT4").Offset(i, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next i
End Sub
Очистка этого ужасного беспорядка приводит к единственному утверждению, которое делает то же самое, что и ваш миллионный код:
Sheets("Analog Data").Range("F3:G3").Resize(1237, 2).Value _
= Sheets("Cluster 58").Range("D4:E4").Resize(1237, 2).Value
Теперь перейдем к лат-лонгу.Вы знаете, я предполагаю, что с (широтой, длиной), заданным в градусах, точки (0,0) и (0,0,1) находятся примерно на расстоянии 10 км друг от друга, а точки (90, -131) и (90,74)) точно в 0 км друг от друга?Это предполагает сферическую Землю.Предполагая, что более реалистичные данные, например, WGS84 , приводят к более сложным расчетам расстояния.
Прежде чем спрашивать, как это сделать в Excel, вы должны спросить себя (и рассказать нам), как бы вы сделали это на листе бумаги.