0
我正在構建一個內部使用另一個udf的udf,但我在迭代變量中收到了錯誤「ByRef argument missing」,我有這個字符串「-60981- - :54044,-60981 - :54044,-60981 - :53835,-60981 - :53835,「我想刪除重複的項目,所以我想取回這個字符串」-60981 - :54044, 60981 - :53835,」這裏是第一UDF,這就是我想要第二個內部使用: 第一UDF:的getJSONUDF內的UDF不起作用(ByRef參數類型不匹配)
Public Function getJSON(JSONObject As String, ObjectNumber As Integer, GetBack As Integer) As Variant
' 0 = object and property
' 1 = object
' 2 = property of object
Dim CompleteObject As String
Dim ObjectsInJSON As Integer
ObjectsInJSON = Len(JSONObject) - Len(Application.Substitute(JSONObject, ",", ""))
If ObjectNumber <= ObjectsInJSON Then
If ObjectNumber = 1 Then
CompleteObject = Left(JSONObject, Application.Find(",", JSONObject, 1) - 1)
Else
CompleteObject = Application.Substitute(Mid(JSONObject, FindN(",",JSONObject, 1, ObjectNumber - 1) + 1, FindN(",", JSONObject, 1, ObjectNumber) - FindN(",", JSONObject, 1, ObjectNumber - 1)), ",", "")
End If
Select Case GetBack
Case Is = 0
getJSON = CompleteObject
Case Is = 1
getJSON = Left(CompleteObject, Application.Find(":", CompleteObject, 1) - 1)
Case Is = 2
getJSON = Right(CompleteObject, Len(CompleteObject) - Application.Find(":", CompleteObject, 1))
End Select
Else
getJSON = CVErr(xlErrNA)
End If
End Function
第二UDF GetUniqueTrailers
Public Function GetUniqueTrailers(JSON As String) As String
Dim i, TrailersCounter As Integer
TrailersCounter = Len(JSON) - Len(Application.Substitute(JSON, ",", ""))
Dim ArrayOfTrailers() As String
For i = 1 To TrailersCounter
'here below occurs this error, in the i variable
If IsError(Application.VLookup(getJSON(JSON, i, 0), ArrayOfTrailers, 1, False)) Then
ReDim Preserve ArrayOfTrailers(i)
ArrayOfTrailers(i) = getJSON(JSONstring, i, 0)
Next i
'convert array to text
For i = 1 To UBound(ArrayOfTrailers)
GetUniqueTrailers = getuniquetraileres & ArrayOfTrailers(i) & ","
Next i
End Function