Al momento sei offline in attesa che la connessione Internet venga ristabilita

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

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.ClickEnd 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 = NothingEnd 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):
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à

ID articolo: 320369 - Ultima revisione: 07/21/2006 11:01:47 - Revisione: 4.2

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

  • kbautomation kbbug kbpending KB320369
Feedback
nt.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >