Sintomi

Quando si usa la proprietà Location o Location.Address delle interruzioni di pagina verticali o orizzontali in una macro di Microsoft Visual Basic, Applications Edition, potrebbe essere visualizzato il messaggio di errore seguente:

Errore di runtime '9':Pedice fuori dall'intervallo

Causa

Questo problema può verificarsi se si verificano le condizioni seguenti:

  • La cella attiva si trova sopra l'interruzione di pagina orizzontale o a sinistra dell'interruzione di pagina verticale a cui fa riferimento l'indice HPageBreaks o VPageBreaks.

  • La posizione dell'interruzione di pagina verticale o orizzontale è fuori dallo schermo a destra della finestra visibile o sotto la finestra visibile della cartella di lavoro.

  • In Microsoft Excel si usa una macro di Visual Basic, Applications Edition simile al codice seguente:

    Sub TestHorizontal()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.HPageBreaks.Count    MsgBox ActiveSheet.HPageBreaks(1).Location.Address    MsgBox ActiveSheet.HPageBreaks(2).Location.AddressEnd SubSub TestVertical()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.VPageBreaks.Count    MsgBox ActiveSheet.VPageBreaks(1).Location.Address    MsgBox ActiveSheet.VPageBreaks(2).Location.Address    MsgBox ActiveSheet.VPageBreaks(3).Location.AddressEnd Sub

Soluzione alternativa

Microsoft fornisce esempi di programmazione solo per illustrazioni, senza garanzie espresse o implicite. Sono incluse, a titolo esemplifiche, le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione illustrato e con gli strumenti usati per creare ed eseguire il debug delle routine. I tecnici del supporto Tecnico Microsoft possono spiegare le funzionalità di una particolare procedura, ma non modificarli per fornire funzionalità aggiuntive o creare procedure in base a specifici requisiti. Per evitare questo problema, aggiungere codice per selezionare l'ultima cella usata nel foglio di lavoro prima che il codice usi la proprietà Location delle interruzioni di pagina orizzontali o verticali. Ad esempio, usare il codice seguente per selezionare la cella finale, usare la proprietà Location e quindi deselezionare di nuovo la cella attiva originale:

Sub CheckPageBreaks()    'Set object "currcell" equal to active cell.    Set currcell = ActiveCell    'Select the last cell on the worksheet that has data.    Range("IV65536").Select    'Include code with Location property here.    x = ActiveSheet.HPageBreaks(2).Location.Address    MsgBox x    'Example sets x equal to address of second horizontal page break.    'Then message box displays the address of the page break.    'Select original active cell.    currcell.SelectEnd Sub

Dopo aver calcolato la proprietà Location, è possibile selezionare di nuovo la cella attiva originale. Se si usa il codice per scorrere tra la prima e l'ultima cella o selezionare l'ultima cella e selezionare di nuovo immediatamente la cella iniziale, l'errore potrebbe comunque verificarsi. La schermata deve essere ridisegna e la proprietà Location deve essere calcolata affinché la soluzione alternativa sia efficace. Se usi il codice precedente con

Application.ScreenUpdating = False

per impedire il ridisegno dello schermo, il problema persiste.

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Ulteriori informazioni

Se si usa il metodo Count con la proprietà VPageBreaks o HPageBreaks, è possibile che venga restituito zero. Ciò si verifica nelle condizioni elencate nella sezione "Causa". Se è visibile un'interruzione di pagina, il metodo Count può fornire la risposta corretta. Il metodo Count per le interruzioni di pagina verticali o orizzontali può fornire il risultato previsto se un'interruzione di pagina è vicina alla parte visibile della finestra della cartella di lavoro. La soluzione alternativa fornita in precedenza può essere usata per ottenere il conteggio previsto.Le interruzioni di pagina a destra della finestra della cartella di lavoro o sotto la finestra della cartella di lavoro possono consentire il funzionamento del metodo Count e la posizione dell'interruzione di pagina, se la distanza tra la finestra e l'interruzione di pagina è inferiore alla metà della distanza tra le interruzioni di pagina.

Riferimenti

Per altre informazioni su come intrappolare errori in una macro, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

213637 Come usare "Su errore" per gestire gli errori in una macro

Serve aiuto?

Vuoi altre opzioni?

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