如何将用户定义的类类型ByRef的数组从excel vba传递到vb.net?我有一个类似的帖子处理传递双数组here,我尝试使用与我的UDT相同的方法,但它不起作用。有什么想法吗?
答案 0 :(得分:1)
很抱歉回答我自己的问题(再次),这与我在这个问题中链接的其他问题非常相似,但我能够以与其他问题的答案几乎相同的方式完成它。我只需改变一些折射参数。
在vb.net代码中,我将参数作为对象,获取该对象的类型(它识别为object()数组),然后使用以下函数将该对象数组直接转换为所需的类数组vb.net
Friend Function ComObjectArrayToPointArray(ByVal comObject As Object) As Point()
Dim thisType As Type = comObject.GetType
Dim fibType As Type = Type.GetType("System.Object[]")
Dim fibArray(0) As Point
If thisType Is fibType Then
Dim args(0) As Object
Dim numEntries As Integer = CInt(thisType.InvokeMember("Length", BindingFlags.GetProperty, _
Nothing, comObject, Nothing))
ReDim fibArray(numEntries - 1)
For j As Integer = 0 To numEntries - 1
args(0) = j
fibArray(j) = DirectCast((thisType.InvokeMember("GetValue", BindingFlags.InvokeMethod, _
Nothing, comObject, args)), Point)
Next
End If
Return fibArray
End Function