nachfolgenden unveränderten Code habe ich mir hier runtergeladen:
http://de.wikibooks.org/wiki/VBA_in_Excel_-_Grundlagen:_XL4-Makros_in_VBA_verwenden
Und zwar kommt "Index außerhalb des gültigen Bereichs"
gleich beim obersten "ReDim Preserve horzpbArray(1 To intCounter - 1)"
intCounter hat zu diesem Zeitpunkt den Wert 1
M.E. passiert dann also der verursachende Fehler in der vorherigen While-Schleife sodaß intCounter nicht so erhöht wird wie Hans sich das dachte *Annahme*
Getestet habe ich es in einer Datei bzw. an einem Blatt was in der Seitenvorschauansicht mit Hintergrundbild "Seite X" 9 Seiten durchnummeriert.
Sieht jemand wo da der Fehler sein könnte?
Danke ^ Gruß
Reinhard
Sub GetPageBreaks()
Dim horzpbArray() As Integer
Dim verpbArray() As Integer
Dim intCounter As Integer, intCol As Integer, intRow As Integer
ThisWorkbook.Names.Add Name:="hzPB", _
RefersToR1C1:="=GET.DOCUMENT(64,""PrintPages"")"
ThisWorkbook.Names.Add Name:="vPB", _
RefersToR1C1:="=GET.DOCUMENT(65,""PrintPages"")"
intCounter = 1
While Not IsError(Evaluate("Index(hzPB," & intCounter & ")"))
ReDim Preserve horzpbArray(1 To intCounter)
horzpbArray(intCounter) = Evaluate("Index(hzPB," & intCounter & ")")
intCounter = intCounter + 1
Wend
ReDim Preserve horzpbArray(1 To intCounter - 1)
intCounter = 1
While Not IsError(Evaluate("Index(vPB," & intCounter & ")"))
ReDim Preserve verpbArray(1 To intCounter)
verpbArray(intCounter) = Evaluate("Index(vPB," & intCounter & ")")
intCounter = intCounter + 1
Wend
ReDim Preserve verpbArray(1 To intCounter - 1)
Workbooks.Add
With Range("A1")
.Value = "Horizontale Seitenumbrüche (Zeilen):"
.Font.Bold = True
End With
For intRow = LBound(horzpbArray, 1) To UBound(horzpbArray, 1)
Cells(intRow + 1, 1) = horzpbArray(intRow)
Next intRow
With Range("B1")
.Value = "Vertikale Seitenumbrüche (Spalten):"
.Font.Bold = True
End With
For intCol = LBound(verpbArray, 1) To UBound(verpbArray, 1)
Cells(intCol + 1, 2) = verpbArray(intCol)
Next intCol
Columns.AutoFit
Columns("A:B").HorizontalAlignment = xlCenter
End Sub