Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

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 = True
    oApp.UserControl = True
    Dim oBooks As Object = oApp.Workbooks
    Dim 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 = True
    oApp.UserControl = True
    Dim oldCI As System.Globalization.CultureInfo = _
    System.Threading.Thread.CurrentThread.CurrentCulture
    System.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

http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspxProblemas de globalización y localización para soluciones creadas con Microsoft Visual Studio Tools para Microsoft Office System

http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

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.Click
    End 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 = Nothing
    End 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:

http://support.microsoft.com/ofd 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

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×