Symptome
Wenn Sie die Location-Eigenschaft oder Location.Address von vertikalen oder horizontalen Seitenumbrüchen in einem Microsoft Visual Basic for Applications-Makro verwenden, wird möglicherweise die folgende Fehlermeldung angezeigt:
Hinweis
Laufzeitfehler '9':
Tiefstellen außerhalb des Bereichs
Ursache
Dieses Problem kann auftreten, wenn die folgenden Bedingungen erfüllt sind:
Die aktive Zelle befindet sich oberhalb des horizontalen Seitenumbruchs oder links neben dem vertikalen Seitenumbruch, auf den vom Index HPageBreaks oder VPageBreaks verwiesen wird.
Der vertikale oder horizontale Seitenwechsel befindet sich außerhalb des Bildschirms rechts neben dem sichtbaren Fenster oder unterhalb des sichtbaren Fensters der Arbeitsmappe.
Sie verwenden ein Visual Basic for Applications Makro in Microsoft Excel ähnlich dem folgenden Code:
Sub TestHorizontal() ActiveSheet.Range("CZ1000").Value = 1 MsgBox ActiveSheet.HPageBreaks.Count MsgBox ActiveSheet.HPageBreaks(1).Location.Address MsgBox ActiveSheet.HPageBreaks(2).Location.Address End 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.Address End Sub
Problemumgehung
Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Garantie. Dies schließt die stillschweigende Gewährleistung der Marktgängigkeit oder der Eignung für einen bestimmten Zweck ein, ist aber nicht darauf beschränkt. In diesem Artikel wird davon ausgegangen, dass Sie mit der vorgestellten Programmiersprache und den Werkzeugen zum Erstellen und Debuggen von Prozeduren vertraut sind. Die Microsoft Support-Spezialisten können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind.
Um dieses Problem zu vermeiden, fügen Sie Code hinzu, um die letzte Zelle im Arbeitsblatt auszuwählen, bevor der Code die Location-Eigenschaft von horizontalen oder vertikalen Seitenumbrüchen verwendet. Verwenden Sie beispielsweise den folgenden Code, um die Endzelle auszuwählen, verwenden Sie die Location-Eigenschaft, und wählen Sie dann die ursprüngliche aktive Zelle erneut aus:
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.Select
End Sub
Nachdem die Location-Eigenschaft berechnet wurde, können Sie erneut die ursprüngliche aktive Zelle auswählen. Wenn Sie Code verwenden, um zwischen der ersten und der letzten Zelle zu scrollen, oder wenn Sie die letzte Zelle auswählen und die Startzelle sofort erneut auswählen, kann der Fehler weiterhin auftreten. Der Bildschirm muss neu gezeichnet und die Location-Eigenschaft berechnet werden, damit die Problemumgehung wirksam ist. Wenn Sie den obigen Code mit
Application.ScreenUpdating = False
Um die Neuerkennung des Bildschirms zu verhindern, tritt das Problem weiterhin auf.
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.
Weitere Informationen
Wenn Sie die Count-Methode mit der VPageBreaks- oder HPageBreaks-Eigenschaft verwenden, erhalten Sie möglicherweise das Ergebnis 0 (null). Dies geschieht unter den Bedingungen, die im Abschnitt "Ursache" aufgeführt sind. Wenn ein Seitenwechsel sichtbar ist, gibt die Count-Methode möglicherweise die richtige Antwort. Die Count-Methode für vertikale oder horizontale Seitenumbrüche kann das erwartete Ergebnis liefern, wenn sich ein Seitenumbruch in der Nähe des sichtbaren Teils des Arbeitsmappenfensters befindet. Die zuvor angegebene Problemumgehung kann verwendet werden, um die erwartete Anzahl zu erhalten.
Seitenumbrüche, die sich rechts vom Arbeitsmappenfenster oder unterhalb des Arbeitsmappenfensters befinden, können es ermöglichen, dass die Count-Methode funktioniert und dieser Seitenumbruch gefunden wird, wenn der Abstand zwischen dem Fenster und dem Seitenumbruch weniger als die Hälfte des Abstands zwischen Seitenumbrüchen beträgt.
Referenzmaterial
Weitere Informationen zum Abfangen von Fehlern in einem Makro finden Sie im folgenden Artikel der Microsoft Knowledge Base:
213637 Verwenden von "On Error" zum Behandeln von Fehlern in einem Makro