Sommario
    Riparazione Excel

    Come risolvere l’errore VBA di Excel “Subscript Out of Range” (errore di runtime 9)?


    Sommario

      Riassunto: L'errore di runtime 9 in Excel si verifica solitamente quando si utilizzano oggetti diversi in un codice o l'oggetto che si sta cercando di utilizzare non è definito. Questo post illustra le ragioni alla base dell'errore VBA di Excel "Subscript out of Range" e le soluzioni per risolvere il problema. Verrà inoltre menzionato uno strumento di riparazione di Excel che può aiutare a risolvere l'errore se si verifica a causa della corruzione del foglio di lavoro.

      Molti utenti hanno segnalato di aver riscontrato l’errore “Subscript out of range” (errore di runtime 9) quando utilizzano codice VBA in Excel. L’errore si verifica spesso quando l’oggetto a cui si fa riferimento nel codice non è disponibile, è stato eliminato o non è stato definito in precedenza. A volte si verifica se si è dichiarato un array nel codice ma si è dimenticato di specificare l’istruzione DIM o ReDIM per definire la lunghezza dell’array.

      Cause dell’errore di runtime VBA 9: pedice fuori dall’intervallo

      L’errore “Sottoscritto fuori dall’intervallo” in Excel può verificarsi per diversi motivi, ad esempio:

      • L’oggetto che si sta cercando di utilizzare nel codice VBA non è stato definito in precedenza o è stato eliminato.
      • È stata inserita una sintassi di dichiarazione errata dell’array.
      • Errore di ortografia del nome della variabile.
      • Riferimento a un elemento errato dell’array.
      • È stato inserito un nome errato del foglio di lavoro a cui si sta cercando di fare riferimento.
      • Il foglio di lavoro che si sta cercando di richiamare nel codice non è disponibile.
      • È stato specificato un elemento non valido.
      • Non specificato il numero di elementi di una matrice.
      • La cartella di lavoro in cui si sta cercando di utilizzare VBA è danneggiata.

      Metodi per risolvere l’errore VBA di Excel ‘Subscript out of Range’ (pedice fuori dall’intervallo)

      Di seguito sono riportate alcune soluzioni per risolvere l’errore di runtime 9 in Excel.

      Metodo 1: controllare il nome del foglio di lavoro nel codice

      A volte, Excel lancia l’errore di runtime 9: Subscript out of range se il nome del foglio di lavoro non è definito correttamente nel codice. Ad esempio, quando si cerca di copiare il contenuto da un foglio di Excel (emp) a un altro foglio (emp2) tramite il codice VBA, è stato erroneamente indicato un nome sbagliato del foglio di lavoro (vedere il codice seguente).

      Private Sub CommandButton1_Click()
      Worksheets(“emp”).Range(“A1:E5”).Select
      Selection.Copy
      Worksheets(“emp3”).Activate
      Worksheets(“emp3”).Range(“A1:E5”).Select
      ActiveSheet.Paste
      Application.CutCopyMode = False
      End Sub
      controllare il nome del foglio di lavoro nel codice

      Quando si esegue il codice di cui sopra, Excel lancia l’errore Subscript out of range.

      Quindi, controllate il nome del foglio di lavoro e correggetelo. Ecco i passaggi:

      • Andare alla scheda Progettazione nella sezione Sviluppatore.
      • Fare doppio clic sul pulsante Comando.
      • Controllare e modificare il nome del foglio di lavoro (ad esempio, da “emp” a “emp2”).
      Controllare e modificare il nome del foglio di lavoro
      • Ora eseguite il codice.
      • Il contenuto del foglio di lavoro ’emp’ verrà copiato in ’emp2′ (vedere sotto).
      Il contenuto del foglio di lavoro 'emp' verrà copiato in 'emp2'

      Metodo 2: controllare l’intervallo della matrice

      L’errore VBA “Subscript out of range” si verifica anche se in un codice è stato dichiarato un array ma non è stato specificato il numero di elementi. Ad esempio, se si è dichiarato un array e si è dimenticato di dichiarare la variabile array con gli elementi, si otterrà l’errore (vedere sotto):

      controllare l'intervallo della matrice

      Per risolvere il problema, specificare la variabile array:

      Sub FillArray()
      Dim curExpense(364) Come valuta
      Dim intI As Integer
      For intI = 0 to 364
      curExpense(intI) = 20
      Next
      Fine Sub

      Metodo 3: modificare le impostazioni di sicurezza della macro

      L’errore di runtime 9: Subscript out of range può verificarsi anche se c’è un problema con le macro o se le macro sono disabilitate nelle Impostazioni di sicurezza macro. In questo caso, è possibile controllare e modificare le impostazioni delle macro. Procedere come segue:

      • Aprire Microsoft Excel.
      • Accedere a File > Opzioni > Centro fiduciario.
      • In Centro fiduciario, selezionare Impostazioni centro fiduciario.
      • Fare clic su Impostazioni macro, selezionare Abilita tutte le macro, quindi fare clic su OK.
      Impostazioni macro

      Metodo 4: Riparare il file Excel

      Il nome o il formato del file Excel o il nome degli oggetti possono essere cambiati a causa della corruzione del file. Quando gli oggetti non sono identificati in un codice VBA, si può verificare l’errore Subscript out of range. È possibile utilizzare l’utilità Apri e ripara di Excel per riparare il file danneggiato. Per utilizzare questa utility, seguite i seguenti passaggi:

      • In MS Excel, fare clic su File > Apri.
      • Cercare la posizione in cui è memorizzato il file interessato.
      • Nella finestra di dialogo Apri, selezionare la cartella di lavoro danneggiata.
      • Nel menu a tendina Apri, fare clic su Apri e ripara.
      • Verrà visualizzato un messaggio che chiede di riparare il file o di estrarre i dati da esso.
      • Fare clic sull’opzione Ripara per estrarre i dati il più possibile. Se il pulsante Ripara non riesce, fare clic sul pulsante Estrai per recuperare i dati senza formule e valori.

      Se l’utilità “Apri e ripara” non riesce a riparare il file Excel corrotto/danneggiato con macro, provare uno strumento di riparazione Excel avanzato, come Stellar Repair for Excel. Può facilmente riparare una cartella di lavoro Excel gravemente danneggiata e recuperare tutti gli elementi, comprese le macro, i commenti delle celle, le tabelle, i grafici, ecc. con il 100% di integrità. Lo strumento è compatibile con tutte le versioni di Microsoft Excel.

      Conclusione

      È possibile che si verifichi l’errore “Subscript out of range” durante l’utilizzo di VBA in Excel. Per risolvere l’errore è possibile seguire le soluzioni discusse in questo blog. Se il file Excel è danneggiato, è possibile utilizzare Stellar Repair for Excel per riparare il file. È un software potente che può aiutare a risolvere tutti i problemi che si verificano a causa della corruzione del file Excel. Aiuta a recuperare tutti i dati dai file Excel corrotti (.xls, .xlsx, .xltm, .xltx e .xlsm) senza modificare la formattazione originale. Lo strumento supporta Excel 2021, 2019, 2016 e versioni precedenti.

      Was this article helpful?

      No NO

      Circa l'autore

      Himanshu Shakya

      Himanshu is a Tech Enthusiast and Blogger at Stellar, with expertise in data recovery solutions and a keen interest in emerging technologies. Fluent in Japanese, he brings a diverse skill set to his role, contributing to global tech conversations. Outside of work, Himanshu enjoys playing chess, sharpening his strategic thinking and problem-solving skills in his spare time.

      Post correlato

      PERCHÉ STELLAR® È LEADER MONDIALE

      Perché scegliere Stellar?

      • 0M+

        Clienti

      • 0+

        Anni di eccellenza

      • 0+

        Ingegneri R&S

      • 0+

        Paesi

      • 0+

        PARTNER

      • 0+

        Premi ricevuti