Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

ERROR: Aparece el error "Formato antiguo o biblioteca de tipos no válida" al automatizar Excel

Ha finalizado el soporte técnico para Office 2003

Microsoft puso fin al soporte técnico para Office 2003 el 8 de abril de 2014. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

Este artículo se publicó anteriormente con el número E320369
Síntomas
Si se automatiza Microsoft Excel 2002 con Microsoft Visual Basic .NET, Microsoft Visual C# .NET o Microsoft Visual C++, puede aparecer el siguiente error al llamar a determinados métodos:
Error: 0x80028018 (-2147647512)
Descripción: Formato antiguo o biblioteca de tipos no válida
Causa
Aparece este error al llamar a un método de Excel cuando se cumplen las condiciones siguientes:
  • El método requiere un LCID (identificador regional).
  • Ejecuta una versión en inglés de Excel. Sin embargo, la configuración regional del equipo está establecida en un idioma distinto del inglés.
Si el equipo cliente ejecuta la versión en inglés de Excel y la configuración regional del usuario actual tiene establecido un idioma distinto del inglés, Excel intentará encontrar el paquete del idioma configurado. Si no encuentra el paquete de idioma, aparecerá el error.
Solución
Para solucionar temporalmente este problema puede utilizar uno de los métodos siguientes:
  • Instalar Multilingual User Interface Pack para su versión de Office.
  • Ejecutar el método o la propiedad de Excel utilizando InvokeMember para que pueda especificar la información CultureInfo para la llamada. Por ejemplo, el código siguiente muestra cómo puede invocar el método Add del objeto Workbooks con "en-US" como CultureInfo:
    Dim oApp As New Excel.Application()oApp.Visible = TrueoApp.UserControl = TrueDim oBooks As Object = oApp.WorkbooksDim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")oBooks.GetType().InvokeMember("Add", Reflection.BindingFlags.InvokeMethod, Nothing, oBooks, Nothing, ci)
  • O bien, establecer CultureInfo antes de llamar al método de Excel. Por ejemplo:
    Dim oApp As New Excel.Application()oApp.Visible = TrueoApp.UserControl = TrueDim oldCI As System.Globalization.CultureInfo = _    System.Threading.Thread.CurrentThread.CurrentCultureSystem.Threading.Thread.CurrentThread.CurrentCulture = _    New System.Globalization.CultureInfo("en-US")oApp.Workbooks.Add()System.Threading.Thread.CurrentThread.CurrentCulture = oldCI

Cuando usa una de estas soluciones en un equipo donde la configuración regional no coincida con la versión de idioma actual de Office, debería estar familiarizado con el modo en que Excel se comporta e interpreta los datos que podrían tener el formato de una configuración regional concreta. Para obtener más detalles sobre cómo escribir soluciones de Excel globalizadas con Visual Studio .NET, consulte los artículos siguientes en MSDN:

Crear soluciones de Office para usar en varios países o regiones Problemas de globalización y localización para soluciones creadas con Microsoft Visual Studio Tools para Microsoft Office System
Estado
Microsoft ha confirmado que se trata de un error de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a".
Más información

Pasos para reproducir este comportamiento

  1. Compruebe que la configuración regional del equipo está establecida en un idioma distinto del inglés.

    En Windows 2000:
    1. En el Panel de control de Windows, haga doble clic en Configuración regional y de idioma.
    2. En la ficha Opciones regionales, seleccione una ubicación y, después, haga clic en Aceptar.
    En Windows XP o Windows Server 2003:
    1. En el Panel de control, abra Configuración regional y de idioma.
    2. En la ficha Configuración regional, seleccione una configuración regional y, a continuación, haga clic en Aceptar.
  2. Inicie Microsoft Visual Studio .NET.
  3. En el menú Archivo, seleccione Nuevo y haga clic en Proyecto. En el cuadro de diálogo Nuevo proyecto, en Tipos de proyecto, haga clic en Proyectos de Visual Basic. En Plantillas, haga clic en Aplicación para Windows y, a continuación, haga clic en Aceptar. De forma predeterminada, se crea Form1.
  4. En el menú Ver, haga clic en Cuadro de herramientas y agregue un botón a Form1.
  5. Para mostrar la ventana de código del formulario, haga doble clic en Button1.
  6. En la ventana de código, reemplace el código siguiente
    Private Sub Button1_Click(ByVal sender As System.Object, _                          ByVal e As System.EventArgs) _                          Handles Button1.ClickEnd Sub					
    por:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click    Dim oApp As Object    Dim oDoc As Object    oApp = CreateObject("Excel.Application")    oApp.Visible = True    oDoc = oApp.Workbooks.Add    oDoc.Close()    oApp.Quit()    oDoc = Nothing    oApp = NothingEnd Sub					
  7. Agregue la línea de código siguiente al principio del módulo de código de Form1:
    Option Strict Off
  8. Presione F5 para generar y ejecutar el programa.
  9. Para generar el error, haga clic en Button1. El error se produce en la línea siguiente:
    oDoc = oApp.Workbooks.Add					
Referencias
Para obtener más información acerca de Automatización de Office, visite el siguiente sitio Web de desarrollo de Microsoft Office: Además, consulte los siguientes artículos de Microsoft Knowledge Base:
301982 Cómo automatizar Microsoft Excel desde Visual Basic .NET
302084 Cómo automatizar Microsoft Excel desde Microsoft Visual C# .NET
XL2003 XL2007
Propiedades

Id. de artículo: 320369 - Última revisión: 01/09/2008 17:12:19 - Revisión: 8.3

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual C++ 6.1, Microsoft Visual J# .NET 2003 Standard Edition, Microsoft Visual Studio Tools for the Microsoft Office System version 2003

  • kbvs2002sp1sweep kbautomation kbbug kbpending KB320369
Comentarios