Visual Basic.NET - Excel

 
Vista:

Excel

Publicado por alberto (17 intervenciones) el 30/04/2004 09:29:25
Tras cargar las referencias a Excel 10, el siguiente código:

Dim oxl As Excel.Application
Dim owb As Excel.WorkbookClass
Dim fwb As Excel.WorkbookClass
oxl = new Excel.Application
AddHandler oxl.WorkbookOpen, AddressOf oxl_WorkbookOpen

Se detiene en la linea: AddHandler oxl.WorkbookOpen, AddressOf oxl_WorkbookOpen
con un error indicando: Interfaz no compatible.
Con lo cual no se pueden agregar controladores de eventos. ¿Alguien sabe a que es debido ese error? y ¿como se puede solucionar?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Excel

Publicado por Edgar (1501 intervenciones) el 04/05/2004 02:47:40
Hola

El problema es que son librerías COM, las cuales son diferentes a las de .NET, no he probado esto, pero agrega a tu clase el atributo COMVisible, de esta forma...

Imports System.Runtime.InteropServices

<ComVisible(True)> _
Class SampleClass

De esta forma.. estás haciendo que tus objetos sean compatibles con COM, no te garantizo nada, pero vale la pena probar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel

Publicado por alberto (17 intervenciones) el 04/05/2004 09:31:51
Me temo que esa no es la solución, mirando en las ayudas de MS indica que el atributo ComVisible establece la visibilidad de los metodos para los objetos Com, en este caso lo que queremos es acceder a los eventos de un componente Com.
El problema parece estar en el ensamblado de interoperabilidad que se genera para Excel, ya que dichos eventos son visibles pero no es posible utilizarlos, además se ha optado por realizar una biblioteca en VB6 que si captura los eventos y los exporta, y en VBNet dichos son visibles y se pueden utilizar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel

Publicado por Edgar (1501 intervenciones) el 06/05/2004 04:27:26
Hola

Como te dije.. no sabia si esa era la solución correcta.. el problema que tienes es que estas pasando un objeto con una interfaz incompatible, porque el objeto es de .NET... para lograr que un objeto de .NET sea visible para un objeto COM se usa este atributo (COMVisible) la verdad no se que decirte si no te funciona, por lo menos intentaria probarlo a ver

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar