का उपयोग कर vba से C# तक एक सरणी पास करें com-interop का उपयोग कर vba से .net (विशेष रूप से C#) से उपयोगकर्ता परिभाषित कक्षाओं की सरणी पास करने का उचित तरीका क्या है?कॉम-इंटरऑप
यहां मेरा सी # कोड है। अगर मैं vba से Method1 को कॉल करता हूं तो यह "ऐरे या उपयोगकर्ता परिभाषित प्रकार अपेक्षित" या "फ़ंक्शन एक स्वचालन प्रकार का उपयोग करता है जो दृश्य मूलभूत में समर्थित नहीं है" के साथ विफल रहा है।
public class MyClass
{
public Method1(UserDefinedClass[] Parameters) { ... }
public Method2(Object Parameters) { ... }
}
मैंने मार्शलएएसएट्रिब्यूट क्लास के बारे में कुछ पढ़ा है। क्या यह सी # कोड में गायब टुकड़ा हो सकता है?
यहाँ VBA कोड मैं का उपयोग कर रहा है:
Dim udt As New UserDefinedClass
Dim myArray()
myArray(1) = udt
myClass.Method1(myArray)
myClass.Method2(myArray)
हम यहाँ में थोड़ा और अधिक जानकारी की आवश्यकता होगी। क्या आप टाइप की वीबीए परिभाषा और कुछ कोड जोड़ सकते हैं जो आपको COM इंटरफ़ेस को कॉल कर रहा है? – JaredPar
जोड़ा गया वीबीए कोड। – Freddie
आपकी सरणी घोषणा भिन्नताओं की एक सरणी घोषित कर रही है - इसे आपके उपयोगकर्ता परिभाषित क्लास की सरणी घोषित करनी चाहिए, उदा। "Dim MyArray (0 से 3) UserDefinedClass के रूप में" – Joe