Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler in Code von Hans bei GetPageBreak()

Fehler in Code von Hans bei GetPageBreak()
15.04.2008 15:13:00
Hans
Hallo Wissende,
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  


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler in Code von Hans bei GetPageBreak()
15.04.2008 17:24:00
Hans
Hi Reinhard,
Es fehlen die Angaben für 2 Voraussetzungen:
1. der Blattname auf den du das Makro ausführen willst muss PrintPages sein.
2. Das Blatt muss mindestens Zellen ausgefüllt haben die 1 horizontalen und 1 vertikalen Seitenumbruch verursachen.
GreetZ Renée

AW: Fehler in Code von Hans bei GetPageBreak()
15.04.2008 17:39:06
Hans
Merci Renée,
ja, es lag an fehlendem Blatt "PrintPages", da aber dort keine Fehler auftraten schaute ich immer nur in die While-Schleife.
Dankeschön
Gruß
Reinhard

AW: Fehler in Code von Hans bei GetPageBreak()
15.04.2008 19:40:02
Hans
Hallo Reinhard,
da aber dort keine Fehler auftraten schaute ich immer nur in die While-Schleife.
Das Problem war in der Funktion der XL4 Makros, die sich beide auf das Blatt "PrintpPages" bezogen.
Die verursachten wohl einen Fehler, der aber mit der IsError Funktion abgefangen wurde. Dabei blieb aber der intCounter auf 1 und somit konnte der ReDim nicht funktionieren, den auf 0 kann man nicht dimensionieren.
GreetZ Renée
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige