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, è possibile che venga visualizzato il messaggio di errore seguente:

Errore di run-time ' 9': pedice fuori intervallo

Causa

Questo problema può verificarsi in presenza delle seguenti condizioni:

  • 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 di interruzione di pagina verticale o orizzontale è disinserita dalla schermata a destra della finestra visibile o sotto la finestra visibile della cartella di lavoro.

  • Si usa una macro di Visual Basic per le applicazioni in Microsoft Excel 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 Sub Sub 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 le illustrazioni, senza garanzia espressa o implicita. Ciò include, ma non solo, 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 che viene dimostrato e con gli strumenti usati per creare e eseguire il debug delle procedure. Gli ingegneri del supporto tecnico Microsoft possono aiutare a spiegare la funzionalità di una determinata procedura, ma non modificano questi esempi per fornire funzionalità aggiuntive o creare procedure per soddisfare i requisiti specifici. Per evitare questo problema, Aggiungi il 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, usa il codice seguente per selezionare la cella finale, usa la proprietà location e quindi riseleziona 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 si seleziona l'ultima cella e si riseleziona immediatamente la cella iniziale, è possibile che si verifichi ancora l'errore. La schermata deve essere ridisegnata e la proprietà location viene calcolata per consentire l'efficacia della soluzione alternativa. Se si usa il codice precedente con

Application.ScreenUpdating = False

per evitare il ridisegno dello schermo, il problema si verifica ancora.

Stato

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

Ulteriori informazioni

Se usi il metodo count con la proprietà VPageBreaks o HPageBreaks , potresti ricevere un risultato pari a zero. Questo problema si verifica nelle condizioni elencate nella sezione "causa". Se un'interruzione di pagina è visibile, il metodo count può dare 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 specificata in precedenza può essere usata per ottenere il conteggio previsto. Le interruzioni di pagina che si trovano a destra della finestra della cartella di lavoro o al di sotto della finestra della cartella può consentire il funzionamento del metodo count e l'interruzione di pagina, se la distanza tra la finestra e l'interruzione di pagina è inferiore a metà della distanza tra le interruzioni di pagina.

Riferimenti

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

213637 Come usare "On Error" per gestire gli errori in una macro

Serve aiuto?

Amplia le tue competenze

Esplora i corsi di formazione >

Ottieni in anticipo le nuove caratteristiche

Partecipa a Microsoft Insider >

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×