Я пытаюсь написать функцию, которая вычисляет минимальное расстояние одного почтового индекса до другого.Функция должна принимать долготу и широту одного почтового индекса, а затем двумерный массив со всей информацией о долготе и широте почтовых индексов.Вот функция, которую я написал:
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)
не будет работать.Я думал, что он должен вернуть номер последней строки моего массива долготы и широты.