में उपयोग किए जाने पर काम करता है मैंने अपना खुद का एक्सेल फ़ंक्शन परिभाषित किया है (जिसे ADXExcelFunctionDeescriptor कहा जाता है)। विधि स्टब निम्न जैसा दिखता है:कोड के पीछे सेट करते समय Excel फ़ंक्शन अपवाद फेंकता है। एक्सेल
public static object ExecuteMyFunction(object values, object tagName)
{ // Some code here }
विधि को डबल मानों और एक स्ट्रिंग नामक एक सरणी प्राप्त होती है, जिसे नाम कहा जाता है।
देखने डिजाइन में मेरी ADXExcelFunctionDeescriptor ऐसा दिखाई देता है:
मैं फोन और कोड की निम्न लाइनों द्वारा समारोह सेट:
var formula = string.Format(@"={0}({1};{2})", Temp.FORMULA_NAME, this.DataRangeTextBox.Text, tagCaption);
resultRange.set_Value(Type.Missing, formula);
resultRange.Formula = resultRange.Value;
यह एक अपवाद में परिणाम होगा! , इसके अलावा
System.Runtime.InteropServices.COMException occurred
HResult=-2146827284
Message=Ausnahme von HRESULT: 0x800A03EC
Source=""
ErrorCode=-2146827284
StackTrace:
bei System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
bei Microsoft.Office.Interop.Excel.Range.set_Value(Object RangeValueDataType, Object)
bei bb.ExcelToolbar.Controls.bbControl.ApplyFormula(Object sender, EventArgs e) in c:\xx\yy\zz\bb\bb.ExcelToolbar\Controls\bbControlcs:Zeile 88.
InnerException:
अगर मैं टैगनाम पैरामीटर समारोह किसी भी अपवाद या त्रुटि के बिना एक परिणाम देता है पारित नहीं है: अपवाद ऐसा दिखाई देता है।
var formula = string.Format(@"={0}({1})", Temp.FORMULA_NAME, this.DataRangeTextBox.Text, tagCaption);
resultRange.set_Value(Type.Missing, formula);
resultRange.Formula = resultRange.Value;
तो मुझे लगता है यह स्ट्रिंग पैरामीटर के साथ कुछ है। मैंने स्ट्रिंग पैरामीटर को "या" वर्णों से घिरा करने की भी कोशिश की लेकिन अब तक कोई बदलाव नहीं है।
आगे अगर मैं सीधे Excel में फ़ंक्शन टाइप करता हूं तो यह बिना किसी समस्या के काम करता है। उदाहरण के लिए, यदि मैं निम्नलिखित में टाइप करता हूं Excel में सूत्र:
=Temp.DoSomething(B2:B13;"Flow")
शायद मैं कुछ या कुछ गलत कर बाहर याद आती है
भीतरी अपवाद क्या है सही है? –
@israelaltar: आंतरिक अपवाद न्यूल है। –
क्या आपने अपने सूत्र में अल्पविराम = {0} ({1}, {2}) या कोलन का उपयोग करने का प्रयास किया है? –