Du får ett fel meddelande om att skriptet är utanför området när du använder HPageBreaks eller VPageBreaks. location i Excel

Symptom

När du använder egenskapen plats eller plats. adress för lodräta eller vågräta sid brytningar i ett Microsoft Visual Basic for Applications-makro, kan du få följande fel meddelande:

Körfel ' 9 ': nedsänkt text utanför intervallet

Orsak

Det här problemet kan uppstå om följande gäller:

  • Den aktiva cellen ligger ovanför den vågräta sid brytningen eller till vänster om den lodräta sid brytning som refereras av HPageBreaks -eller VPageBreaks -indexet.

  • Den lodräta eller vågräta sid brytnings platsen är utanför skärmen till höger om det synliga fönstret eller nedanför det synliga fönstret i arbets boken.

  • Du använder ett Visual Basic for Applications-makro i Microsoft Excel på följande sätt:

    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

Lösning

Microsoft tillhandahåller programmerings exempel endast i syfte utan garanti vare sig eller underförstått. Detta inkluderar, men är inte begränsat till, underförstådda garantier avseende säljbar het eller lämplighet för ett visst ändamål. I den här artikeln förutsätts det att du känner till det programmeringsspråk som visas och hur du kan använda verktygen för att skapa och felsöka procedurer. Microsofts support tekniker kan förklara funktionerna för en viss procedur, men de kommer inte att ändra dessa exempel för att tillhandahålla funktioner eller konstruera procedurer som uppfyller dina särskilda krav. Undvik problemet genom att lägga till kod för att markera den sista cellen som används i kalkyl bladet innan koden använder egenskapen location för vågräta eller lodräta sid brytningar. Du kan till exempel använda följande kod för att markera slut cellen, använda egenskapen plats och sedan markera den ursprungliga aktiva cellen igen:

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

När du har beräknat egenskapen location kan du återigen markera den ursprungliga aktiva cellen. Om du använder kod för att bläddra mellan den första och sista cellen, eller markerar den sista cellen och omedelbart markerar start cellen igen, kan felet inträffa. Skärmen måste ritas om och plats egenskapen ska beräknas för att lösningen ska vara effektiv. Om du använder ovanstående kod med

Application.ScreenUpdating = False

problemet uppstår trots att det inte går att rita på skärmen.

Status

Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".

Mer information

Om du använder metoden Count med egenskapen VPageBreaks eller HPageBreaks kan du få resultatet noll. Detta gäller enligt villkoren i avsnittet "orsak". Om en sid brytning visas kan det hända att räknings metoden ger rätt svar. Räknings metoden för lodräta eller vågräta sid brytningar kan ge det förväntade resultatet om en sid brytning är nära den synliga delen av arbets boks fönstret. Den lösning som du angav tidigare kan användas för att få det förväntade antalet. Sid brytningar som finns till höger om arbets boks fönstret eller nedanför arbets boks fönstret kan göra att räknings metoden fungerar och att sid brytningen är mindre än en halv avståndet mellan sid brytningar.

Referenser

Om du vill veta mer om hur du trap-fel i ett makro klickar du på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:

213637 Så här använder du "på fel" för att hantera fel i ett makro

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×