Beste,
Ik ben momenteel aan het spelen met user defined functions in C# voor Excel 2007. Nu lukt het om een functie 'Foo(int key)' in C# te maken, waarna ik deze in Excel met =Foo(100) kan aanroepen. Echter wanneer ik een aanroep =Foo(A1) doe (waarbij cel A1 in Excel een integer bevat) geeft Excel niet de waarde van A1 door. Hij roept de functie in zijn geheel niet aan en ook andere parameters waren geen succes. Kennelijk doet Excel een soort pass-by-reference want =Foo(Round(A1;0)) werkt weer wel.
Msdn geeft aan:
Ik ben momenteel aan het spelen met user defined functions in C# voor Excel 2007. Nu lukt het om een functie 'Foo(int key)' in C# te maken, waarna ik deze in Excel met =Foo(100) kan aanroepen. Echter wanneer ik een aanroep =Foo(A1) doe (waarbij cel A1 in Excel een integer bevat) geeft Excel niet de waarde van A1 door. Hij roept de functie in zijn geheel niet aan en ook andere parameters waren geen succes. Kennelijk doet Excel een soort pass-by-reference want =Foo(Round(A1;0)) werkt weer wel.
Msdn geeft aan:
Maar of ik nu een parameter als array, object of Range toelaat, de functie wordt niet aangeroepen. Kan iemand mij vertellen hoe ik toch zo ver kan komen dat functie aanroepen met referenties naar andere cellen in C# afgevangen kunnen worden?Single cells As with most arrays or ranges returned in Excel, if applied to a single cell, the first value in the array (index 0 for one-dimensional arrays and indexes 0,0 for two-dimensional arrays) goes into the cell.