Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Durante l'esecuzione di codice che usa l'automazione per controllare Microsoft Excel, potrebbe verificarsi uno dei seguenti errori:

In Microsoft Excel 97 e nelle versioni successive di Excel viene visualizzato uno dei seguenti messaggi di errore:

Messaggio di errore 1

Errore di runtime '1004':
Metodo '<nome del metodo>' dell'oggetto '_Global' non riuscito

Messaggio di errore 2

Errore definito dall'applicazione o definito dall'oggetto

In Microsoft Excel 95 viene visualizzato uno dei messaggi di errore seguenti:

Messaggio di errore 1

Errore di runtime '-2147023174'
Errore di automazione OLE

Messaggio di errore 2

Errore di runtime '462':
Il computer server remoto non esiste o non è disponibile.

Causa

Visual Basic ha stabilito un riferimento a Excel a causa di una riga di codice che chiama un oggetto, un metodo o una proprietà di Excel senza qualificare l'elemento con una variabile oggetto di Excel. Visual Basic non rilascia questo riferimento finché non si termina il programma. Questo riferimento errante interferisce con il codice di automazione quando il codice viene eseguito più di una volta.

Risoluzione

Per risolvere il problema, modificare il codice in modo che ogni chiamata a un oggetto, un metodo o una proprietà di Excel venga qualificata con la variabile oggetto appropriata.

Stato

Si tratta di un comportamento correlato alla progettazione del prodotto.

Ulteriori informazioni

Per automatizzare Microsoft Excel, viene stabilito una variabile oggetto che in genere fa riferimento all'oggetto Applicazione Excel o all'oggetto Cartella di lavoro di Excel. È quindi possibile impostare altre variabili oggetto per fare riferimento a un foglio di lavoro, un intervallo o altri oggetti nel modello a oggetti di Microsoft Excel. Quando si scrive codice per usare un oggetto, un metodo o una proprietà di Excel, è sempre necessario anteporre alla chiamata la variabile oggetto appropriata. In caso contrario, Visual Basic stabilisce un riferimento specifico a Excel. Questo riferimento potrebbe causare problemi quando si tenta di eseguire più volte il codice di automazione. Si noti che anche se la riga di codice inizia con la variabile oggetto, è possibile effettuare una chiamata a un oggetto, un metodo o una proprietà di Excel al centro della riga di codice non preceduta da una variabile oggetto.

I passaggi seguenti illustrano come riprodurre il problema e come correggerlo.

Procedura per riprodurre il problema

  1. Avviare un nuovo progetto STANDARD EXE in Visual Basic. Form1 viene creato per impostazione predefinita.

  2. Scegliere Riferimenti dal menu Progetto e quindi verificare la versione di Excel da automatizzare nella Libreria oggetti.

  3. Posizionare un controllo CommandButton in Form1.

  4. Copiare l'esempio di codice seguente nella finestra del codice di Form1.

          Option Explicit
    
          Private Sub Command1_Click()
             Dim xlApp As Excel.Application
             Dim xlBook As Excel.Workbook
             Dim xlSheet As Excel.Worksheet
             Set xlApp = CreateObject("Excel.Application")
             Set xlBook = xlApp.Workbooks.Add
             Set xlSheet = xlBook.Worksheets("Sheet1")
             xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello"
             xlBook.Saved = True
             Set xlSheet = Nothing
             Set xlBook = Nothing
             xlApp.Quit
             Set xlApp = Nothing
          End Sub
    
  5. Scegliere Start dal menu Esegui oppure premere F5 per avviare il programma.

  6. Fare clic sul controllo CommandButton . Non si verifica alcun errore. Tuttavia, è stato creato un riferimento a Excel e non è stato rilasciato.

  7. Fare di nuovo clic sul controllo CommandButton . Si noti che viene visualizzato uno dei messaggi di errore descritti nella sezione "Sintomi".

    Nota Il messaggio di errore si verifica perché il codice fa riferimento al metodo della cella senza prima che la chiamata
    Variabile oggetto xlSheet.

  8. Interrompere il progetto e modificare la riga di codice seguente:

    xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
    

    Modificare la riga di codice in modo che assomigli alla riga di codice seguente.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
    
  9. Eseguire di nuovo il programma. Si noti che è possibile eseguire il codice più volte senza ricevere un messaggio di errore.

Riferimenti

189618 Potrebbe essere visualizzato il messaggio di errore "Errore di runtime '-2147023174' (800706ba)" o "Errore di runtime '462'" quando si esegue codice Visual Basic che usa l'automazione per controllare Word
 

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×