VB 自定义函数修改

这样试试(对于已经有序的数据,可将时间复杂度从O(n^2)降为~O(n)。

Function kw(n, rn)

arr = rn

i = 1

While i<= UBound(arr)

If arr(i, 1) = n Then

p = p & arr(i, 2) & "|"

i = i + 1

Else

Exit For

End If

Wend

kw = Left(p, Len(p) - 1)

End Function