我正在尝试编写一个函数来计算一个邮政编码到另一个邮政编码的最小距离。该函数应获取一个邮政编码的经度和纬度,然后是一个包含所有邮政编码的经度和纬度信息的二维数组。这是我写的函数:
Public Function PassArray(Longitude As Double, Latitude As Double, ParamArray varValues() As Variant) As Double
Dim arr() As Variant
Dim x As Long
For x = 1 To UBound(varValues(0), 1)
ReDim Preserve arr(x)
arr(UBound(arr)) = Sqr((Longitude - varValues(0)(x, 1)) ^ 2 + (Latitude - varValues(0)(x, 2)) ^ 2)
Next x
PassArray = WorksheetFunction.Min(arr)
#Value!
尝试使用此功能时出现错误。我检查了每一步,似乎UBound(varValues(0), 1)
是导致问题的原因。当我尝试UBound(varValues)
返回0
时,我猜它是参数数组的第一维上限?
我不明白为什么UBound(varValues(0), 1)
不起作用。我认为它应该返回我的经度和纬度数组的最后一行编号。