Las funciones definidas por el usuario en el complemento de automatización se comportan de manera diferente a Excel 2007

StackOverflow https://stackoverflow.com/questions/609402

Pregunta

He creado un complemento de automatización en C # .NET y tengo un shim dll para ello. los shim dll tiene todos los métodos definidos por el usuario en él que llama al apropiado Métodos en el ensamblado .NET.

El problema al que me enfrento está relacionado con Excel 2007.

En Excel 2003, 1. Agregar una nueva forma a una hoja de cálculo 2. Inserte > > Función > > SUMA. Aparece el cuadro de diálogo Argumentos de función. 3. haga clic en la forma recién insertada en lugar de una celda Nota: no sucede nada y no se ingresa automáticamente un valor de celda en el cuadro de argumento

Ahora en Excel 2007, 1. Inserte una nueva forma 2. Pestaña de la cinta de fórmulas > > Insertar función > > SUMA. Cuadro de diálogo Argumentos de función surge 3. Haga clic en la forma recién insertada Tenga en cuenta que ahora se muestra un diálogo de error que dice " La fórmula que escribió contiene un error "

Este cuadro de diálogo aparece para una función predefinida (SUM). Si selecciono mi función de la lista en lugar de SUM, el cuadro de diálogo de error no se muestra y el cuadro de diálogo Argumento de función simplemente desaparece. La celda muestra un error. etiqueta inteligente.

¿Hay algo que deba incluirse en la dll SHIM para cada función? Como un atributo o algo que mostrará este diálogo de error. O tal vez algún valor especial que devuelve el método para indicar que el argumento ha generado un error.

La función definida en el shim COM es como:

STDMETHOD(GetArea)(MyExcelAddIn::Range *r, double *pRetVal)
{
   return m_pMyUDF->GetArea(r, pRetVal);
}
¿Fue útil?

Solución

Me puse en contacto con Microsoft y confirmaron que se trata de un error en el producto de Excel. Publicaré el enlace de error cuando lo reciba de ellos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top