BUG: Errore "Formato vecchio o libreria di tipo non valido" quando si automatizza Excel 2002

Traduzione articoli Traduzione articoli
Identificativo articolo: 320369 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Se si automatizza Microsoft Excel 2002 utilizzando Microsoft Visual Basic .NET, Microsoft Visual C# .NET o Microsoft Visual C++, è possibile che venga visualizzato il messaggio di errore riportato di seguito quando si richiamano determinati metodi:
Errore: 0x80028018 (-2147647512)
Descrizione: Formato vecchio o libreria di tipo non valido.

Cause

Questo errore viene visualizzato durante la chiamata a un metodo di Excel in presenza delle seguenti condizioni:
  • Si utilizza l'associazione anticipata per richiamare il metodo. e

  • Il metodo richiede un LCID (identificatore di impostazioni internazionali). e

  • Si esegue una versione in lingua inglese di Excel 2002 ma le impostazioni internazionali per il computer sono configurate per una lingua diversa dall'inglese.
Se il computer client esegue la versione in lingua inglese di Microsoft Excel 2002 e le impostazioni internazionali per l'utente corrente sono configurate per una lingua diversa dall'inglese, Excel tenterà di individuare il supporto per la lingua configurata. Se tale supporto non viene rilevato, verrà visualizzato il messaggio di errore in questione.

Risoluzione

Per aggirare questo problema, è possibile:
  • Impostare le informazioni relative alla lingua per il thread corrente sull'inglese prima di creare l'istanza di Excel. Ad esempio:
    System.Threading.Thread.CurrentThread.CurrentCulture =
        System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
    					
    Oppure

  • Utilizzare l'associazione posticipata anziché quella anticipata. Oppure

  • Installare Microsoft Office XP Multilingual User Interface Pack. Per ulteriori informazioni su questo prodotto, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):

    Availability of Office XP with Multilingual User Interface Pack
    http://www.microsoft.com/office/evaluation/indepth/multilingual/muipackavailable.asp

Status

Microsoft ha confermato che questo problema si verifica con i prodotti elencati nella sezione "Si applica a..." di questo articolo.

Informazioni

Procedura per riprodurre il problema

  1. Verificare che le impostazioni internazionali per il computer siano impostate su una lingua diversa dall'inglese:
    1. Nel Pannello di controllo fare doppio clic su Opzioni internazionali.
    2. Nella scheda Generale selezionare un'ubicazione geografica, quindi scegliere OK.
  2. Avviare Microsoft Visual Studio .NET.
  3. Scegliere Nuovo dal menu File, quindi fare clic su Progetto. Nella finestra di dialogo Nuovo progetto, in Tipi progetto fare clic su Progetti di Visual Basic. In Modelli fare clic su Applicazione per Windows, quindi scegliere OK. In base all'impostazione predefinita, verrà creato Form1.
  4. Aggiungere un riferimento alla Libreria di oggetti MS Office 10.0:
    1. Scegliere Aggiungi riferimento dal menu Progetto.
    2. Nella finestra di dialogo Aggiungi riferimento scegliere la scheda COM, selezionare Libreria di oggetti MS Office 10.0, quindi scegliere Seleziona.
    3. Per confermare la selezione, scegliere OK.
  5. Scegliere Casella degli strumenti dal menu Visualizza, quindi aggiungere un pulsante a Form1.
  6. Per visualizzare la finestra del codice per il form, fare doppio clic su Button1.
  7. Nella finestra del codice sostituire il codice riportato di seguito:
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    con:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oApp As Excel.Application
        Dim oDoc As Excel.Workbook
    
        oApp = New Excel.Application()
        oApp.Visible = True
        oDoc = oApp.Workbooks.Add
        oDoc.Close()
        oApp.Quit()
    
        oDoc = Nothing
        oApp = Nothing
    End Sub
    					
  8. Aggiungere il codice riportato di seguito nella parte superiore di Form1.vb:
    Imports Microsoft.Office.Interop
    					
  9. Premere F5 per compilare ed eseguire il programma.
  10. Per fare in modo che venga generato il messaggio di errore in questo, fare clic su Button1. L'errore si verificherà nella seguente riga:
    oDoc = oApp.Workbooks.Add
    					

Riferimenti

Per ulteriori informazioni sull'automazione di Office, visitare il seguente sito Web di Microsoft Office Development (informazioni in lingua inglese):
http://support.microsoft.com/ofd

Vedere inoltre i seguenti articoli della Knowledge Base:
307029 HOW TO: Transfer XML Data to Microsoft Excel 2002 by Using Visual C# .NET
307021 HOW TO: Transfer XML Data to Microsoft Excel 2002 by Using Visual Basic .NET
301982 HOWTO: Automate Microsoft Excel from Visual Basic .NET
302084 HOWTO: Automate Microsoft Excel from Visual C# .NET

Proprietà

Identificativo articolo: 320369 - Ultima modifica: venerdì 21 luglio 2006 - Revisione: 4.2
Le informazioni in questo articolo si applicano a
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C++ 6.1
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Visual J# .NET 2003 Standard Edition
Chiavi: 
kbautomation kbbug kbpending KB320369
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com