C # Como leer / actualizar ActiveX cuadro combinado a partir de un archivo de libro de Excel habilitado para macros (xlsm) -- # campo con excel campo con com campo con interop campo con activex camp Relacionados El problema

C# How to read/update activex combobox from an Excel Macro-Enabled Workbook file (xlsm)


0
vote

problema

Español

Actualmente estoy desarrollando una aplicación de C # que se abre, lee y actualiza un archivo de libro de Excel habilitado para macros (xlsm). Yo era capaz de leer y actualización de las células, pero yo no era capaz de leer / actualizar un control ActiveX, específicamente un cuadro combinado.

usando Excel = Microsoft.Office.Interop.Excel;

usando MSForm = Microsoft.Vbe.Interop.Forms;

He intentado diferentes recetas basadas en la investigación ( http: //forums.asp. net / t / 1244356.aspx / 1/10 ) para tratar de leer el elemento seleccionado:

Excel.Shape aShape = xlWorkSheet.Shapes.Item (nombre);

Objeto o = aShape.OLEFormat.Object;

MSForm.ComboBox newBox = (MSForm.ComboBox) (((Excel.OLEObject) o) .Object);

o alternativamente

Excel.OLEObject cb1 = (Excel.OLEObject) xlWorkSheet.OLEObjects (nombre);

MSForm.ComboBox combo1 = (MSForm.ComboBox) cb1.Object;

pero cuando trato de ejecutar el código me sale el siguiente error:

System.InvalidCastException: No se puede COM objeto colado del tipo 'System .__ ComObject' al tipo de interfaz 'Microsoft.Vbe.Interop.Forms.ComboBox'. Esta operación ha fallado porque la llamada QueryInterface en el componente COM para la interfaz con IID '{8BD21D33-EC42-11CE-9E0D-00AA006002F3}' falló debido al error siguiente: Interfaz no registrada (Excepción de HRESULT: 0x80040155)

Aquí están los detalles de mi entorno:

  • Windows 7 64bit
  • MS Visual Studio 2008 Professional Edition
  • .NET 3.5 SP1
  • Microsoft Excel 14.0.6129.5000 (32-bit)

A medida que las referencias del proyecto, he añadido los componentes .NET:

Ruta: C: Archivos de programa (x86) Microsoft Visual Studio 9.0 Visual Studio Tools para Office PIA Office12 Microsoft.Office.Interop.Excel.dll

Tiempo de ejecución Versión: v1.1.4322

Versión: 12.0.0.0

Ruta: C: Archivos de programa (x86) Microsoft Visual Studio 9.0 Visual Studio Tools para Office PIA Office11 Microsoft.Vbe.Interop.Forms.dll

Tiempo de ejecución Versión: v1.1.4322

Versión: 11.0.0.0

¿Alguna idea sobre lo que podría ser la razón? Si ya sabe cómo cambiar el elemento seleccionado de la lista desplegable por favor, comparta:)

¡Gracias!

Original en ingles

I am currently developing a C# application that opens, reads and updates an Excel Macro-Enabled Workbook file (xlsm). I was able to read and update cells but I was not able to read/update an ActiveX Control, specifically a Combobox.

using Excel = Microsoft.Office.Interop.Excel;

using MSForm = Microsoft.Vbe.Interop.Forms;

I tried different recipes based on research (http://forums.asp.net/t/1244356.aspx/1/10) for trying to read the selected item:

Excel.Shape aShape = xlWorkSheet.Shapes.Item(name);

Object o = aShape.OLEFormat.Object;

MSForm.ComboBox newBox = (MSForm.ComboBox)(((Excel.OLEObject)o).Object);

or alternatively

Excel.OLEObject cb1 = (Excel.OLEObject)xlWorkSheet.OLEObjects(name);

MSForm.ComboBox combo1 = (MSForm.ComboBox)cb1.Object;

but when I try to run the code I get the following error:

System.InvalidCastException : Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Vbe.Interop.Forms.ComboBox'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{8BD21D33-EC42-11CE-9E0D-00AA006002F3}' failed due to the following error: Interface not registered (Exception from HRESULT: 0x80040155).

Here are the details of my environment:

  • Windows 7 64bit
  • MS Visual Studio 2008 Professional Edition
  • .NET 3.5 SP1
  • Microsoft Excel 14.0.6129.5000 (32-bit)

As project references, I added the .NET components:

Path: C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll

Runtime Version: v1.1.4322

Version: 12.0.0.0

Path: C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\Microsoft.Vbe.Interop.Forms.dll

Runtime Version: v1.1.4322

Version: 11.0.0.0

Any ideas on what could be the reason? If you already know how to change the selected item from the combobox please share it :)

Thank you!

              
   
   

Lista de respuestas


Relacionados problema

0  ¿Cómo prevenir el cierre instantáneo de la aplicación MFC con el control ActiveX Shockwaveflash?  ( How to prevent the instant closing of mfc application with activex shockwaveflas ) 
Así que estoy usando el elemento ActiveX de Shockwaveflash en mi aplicación MFC para reproducir un archivo .swf. El problema es: ShockWaveFlash Elemento fun...

1  Me gustaría detectar interactivamente cuando se ha instalado un componente ActiveX, y actualiza de forma asíncrona una parte de la página  ( I would like to interactively detect when an activex component has been installe ) 
Estoy trabajando en un sitio web, y me gustaría actualizar una parte de la página después de que se haya instalado un componente ActiveX. Tengo una idea gener...

1  Control del navegador de archivos para reemplazar <Entrada Tipo = "Archivo">  ( File browser control to replace input type file ) 
Estoy trabajando en una aplicación web ASP.NET para nuestros usuarios de Intranet Corporate. Tengo un formulario donde un usuario debe proporcionar una ruta a...

7  ¿Cómo puedo enganchar a Eventos de Excel en JavaScript  ( How can i hook up to excel events in javascript ) 
En una aplicación web del lado del cliente, me gustaría: Abrir una hoja de cálculo de Excel, Exportar algunos datos de la aplicación a Excel, Permitir ...

2  ¿A dónde van los archivos de iCAB en mi servidor web?  ( Where do cab files go on my web server ) 
Estoy trabajando en un sitio Classic ASP que utiliza controles ActiveX de terceros. Nunca he trabajado con los controles ActiveX antes y no estoy seguro de dó...

1  ¿Cómo puedo usar ActiveX Conrtols a través de Python para controlar un controlador digital DDC4100 de Texas Instruments?  ( How can i use activex conrtols through python to control a texas instruments ddc ) 
Me han encargado de encontrar cómo usar Python para comunicarse con el controlador digital DDC4100. El DDC4100 es un componente del kit de desarrollo DLP Disc...

4  Parámetros opcionales en las bibliotecas activas X  ( Optional parameters in active x libraries ) 
Estoy creando una biblioteca ActiveX en Delphi en la que un objeto en particular tiene una propiedad llamada ConventedCount con un solo parámetro de la fecha ...

1  Permiso denegado; Error 70 ... Word 2007  ( Permission denied error 70 word 2007 ) 
Tener un problema impar al ejecutar una macro de Word 2007. Información de fondo: Esta macro en particular utiliza un control ActiveX. Esto le permite al us...

0  Interfaz para la cascada abierta en Delphi  ( Interface for open cascade in delphi ) 
Estoy tratando de encontrar una manera de usarla Open Cascade (www.opencascade.org) - Modelado 3D Tecnología en uno de nuestros programas que está escrito e...

5  JavaScript: "El objeto no admite esta propiedad o método" cuando se llama al objeto ActiveX  ( Javascript object doesnt support this property or method when activex object ) 
Tengo html simple en login.aspx con un objeto ActiveX: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos