Kullanıcı tanımlı sınıflar dizisini vba'dan .net'e (özellikle C#) com-interop kullanarak iletmenin uygun yolu nedir?Bir diziyi com-interop kullanarak vba'dan C#'ye geçirme
İşte C# kodum. Yöntem1'i vba'dan çağırırsam, "Array veya userdefined type bekleniyor" veya "Function, görsel temelde desteklenmeyen bir otomasyon türü kullanır" hatası verir.
public class MyClass
{
public Method1(UserDefinedClass[] Parameters) { ... }
public Method2(Object Parameters) { ... }
}
MarshallAsAttribute sınıfı hakkında biraz bilgi okudum. Bu C# kodundaki eksik parça olabilir mi?
İşte kullanıyorum vba kod: Sahip
Dim udt As New UserDefinedClass
Dim myArray()
myArray(1) = udt
myClass.Method1(myArray)
myClass.Method2(myArray)
Biz burada biraz daha fazla bilgi ihtiyacı olur. Türün VBA tanımını ve COM arayüzünü çağıran bazı kodları ekleyebilir misiniz? – JaredPar
Eklenen vba kodu. – Freddie
Dizi bildiriminiz bir dizi varyant bildiriyor - UserDefinedClass öğesinin bir dizisini bildiriyor olması gerekir, ör. "DimTrack (0'dan 3'e) UserDefinedClass olarak" – Joe