比较X和Y分成两列的点
我有一个巨大的数据集在其中的x和y坐标。 我正在查看两个事件是否彼此靠近,如果是,请突出显示这些事件或将它们拉出并放在单独的工作表中。
X坐标在列V中
Y坐标在W列
我正在寻找在彼此的给定距离内的点。 我想要突出显示或将其放在新的工作表中。
一个问题是如何报告这一点。 我可能有两个彼此接近的点,这两个点彼此距离也很近。
我的目标是把数以千计的事件清单,并在地图上拉出彼此接近的事件,而不必实际search所有事件。 我的数据集不断增长,从长远来看这将是一个巨大的节省时间。
我不确定你是否想比较x坐标。 你可以find两个接近的x坐标,但是y坐标相距很远。 不知道这是你想要的,只是在一个方面接近的东西。 如果这就是你想要的只是循环行减去另一个。 如果你想find两个地理点之间的距离,请看下面。
你可以用毕达哥拉斯定理得到两点之间的距离。
Dim OrigPoint As Double Dim CheckPoint As Double Dim Distance As Double OrigPoint = point1X - point2X CheckPoint = point1Y - point2Y Distance = Sqr((OrigPoint * OrigPoint) + (CheckPoint * CheckPoint)) If Distance < 300 Then 'Copy or highlight your data End If
你将需要循环行做这样的事情。 然后在上面的代码中使用这些将比较当前行上的点和下一行上的点。
OrigPoint = ActiveWorkbook.Sheets("Sheet1").Range("V" & lrow).Value - ActiveWorkbook.Sheets("Sheet1").Range("V" & lrow + 1).Value CheckPoint = ActiveWorkbook.Sheets("Sheet1").Range("W" & lrow).Value - ActiveWorkbook.Sheets("Sheet1").Range("W" & lrow + 1).Value