我在Excel中有一个表,其中X,Y和Z数据分别在B,C和D列中。
我编写了以下程序,它给出了一对彼此给定距离和高度的点:
Sub Test1()
c3 = 2
For c2 = 2 To 1445
For c1 = c2 To 1445
If Abs(Cells(c1, 4) - Cells(c2, 4)) > 50 Then
If Sqr((Cells(c2, 2) - Cells(c1, 2)) ^ 2 + (Cells(c2, 3) - Cells(c1, 3)) ^ 2) > 0
Cells(c3, 8) = Cells(c1, 2)
Cells(c3, 9) = Cells(c1, 3)
Cells(c3, 10) = Cells(c2, 2)
Cells(c3, 11) = Cells(c2, 3)
c3 = c3 + 1
End If
End If
Next c1
Next c2
问题在于程序变得非常慢,特别是对于大于20,000的大量点数。我的目标是能够为GIS应用程序一次为数百万个点迭代此过程。如何通过A)优化我的代码/算法或B)任何外部手段来减少计算时间?