Euclidian距离VBA(VBA中的转置函数)



我要创建一个计算2分之间距离的曲线,但是当我使用mmult and transpose功能时,我会遇到错误了解为什么

你可以hlp me吗?

Function distancia(RangoA As Range, RangoB As Range) As Long
 Dim s() As Variant
 Dim t() As Variant
 Dim r() As Variant
  s = RangoA
  t = RangoB
  ReDim r(UBound(s), 1)
  For i = 1 To UBound(s)
   r(i, 1) = s(i, 1) - t(i, 1)
Next i
 distancia = Application.MMult(r, Application.Transpose(r))

End Function

请记住,从一个范围创建的数组始终是2D,如果将其转换为2D,则数组仍然是2D。例如。首先是转置后的20x1,是1x20。您应该从数组中通过2D数组传递值,因此;

Application.Transpose(r)(1)

最新更新