什么是正确的方式来传递用户定义的类从vba数组到.net(特别是C#)使用com-interop?从vba传递数组到c#使用com-interop
这是我的c#代码。如果我从vba调用Method1,那么它会失败,并显示“Array or userdefined type expected”或“Function uses an automatic type not visual in visual basic”。
public class MyClass
{
public Method1(UserDefinedClass[] Parameters) { ... }
public Method2(Object Parameters) { ... }
}
我读过一些关于MarshallAsAttribute类的内容。这可能是c#代码中缺失的部分吗?
下面是我使用的VBA代码:你有
Dim udt As New UserDefinedClass
Dim myArray()
myArray(1) = udt
myClass.Method1(myArray)
myClass.Method2(myArray)
我们会需要更多的信息在这里。你可以添加类型的VBA定义和一些代码来显示调用COM接口吗? – JaredPar 2010-01-08 13:24:56
添加了vba代码。 – Freddie 2010-01-08 21:02:00
你的数组声明声明了一个变体数组 - 它应该声明一个你的UserDefinedClass数组,例如“Dim myArray(0 To 3)As UserDefinedClass” – Joe 2010-01-08 21:28:42