Makros für Excel 2003 laufen nicht in 2007

19/11/2007 - 17:43 von Heiko Strohmeier | Report spam
Hallo,
gibt es hier bei den folgenden Zeilen tatsàchlich ein
Kompatibilitàtsproblem?
In Excel 2003 làuft es einwandfrei und in Excel 2007 wird mit einem
Laufzeitfehler 9 - Index lag ausserhalb des gültigen Bereichs
abgebrochen, wenn die Zeilenanzahl das zweite Mal mit Pfad und
Dateinamen ermittelt wird. Der Pfad und Dateiname sind richtig.
Die erste Abfrage ohne Pfad und Dateiname làuft einwandfrei.

Sub test()
Dim lngE1, lngE As Long
lngE = Sheets("Bestand").Cells(Rows.Count, 1).End(xlUp).Row
MsgBox (ThisWorkbook.Path & " " & lngE)
lngE1 = Workbooks("Paeffgen.xlsm").Worksheets("Bestand").Cells _
(Rows.Count, 1).End(xlUp).Row
MsgBox (lngE1)
End Sub

Gruss
Heiko
 

Lesen sie die antworten

#1 Michael v. Fondern
19/11/2007 - 19:03 | Warnen spam
Hallo Heiko,

gibt es hier bei den folgenden Zeilen tatsàchlich ein
Kompatibilitàtsproblem?



Ja. Und obwohl ich selber kein Excel 2007 habe, kann ich dir sagen,
woran es wahrscheinlich liegt.

In Excel 2003 làuft es einwandfrei und in Excel 2007 wird mit einem
Laufzeitfehler 9 - Index lag ausserhalb des gültigen Bereichs
abgebrochen, wenn die Zeilenanzahl das zweite Mal mit Pfad und
Dateinamen ermittelt wird. Der Pfad und Dateiname sind richtig.
Die erste Abfrage ohne Pfad und Dateiname làuft einwandfrei.

Sub test()
Dim lngE1, lngE As Long



Der klassische Fehler: richtig sollte es heißen

Dim lngE1 as Long, lngE As Long

sonst hat ist deine lngE1-Variable nur ein 16-bittiger Integer.

lngE = Sheets("Bestand").Cells(Rows.Count, 1).End(xlUp).Row
MsgBox (ThisWorkbook.Path & " " & lngE)
lngE1 = Workbooks("Paeffgen.xlsm").Worksheets("Bestand").Cells _
(Rows.Count, 1).End(xlUp).Row



Das hier kann in Excel 2007 schief gehen, weil dort die Anzahl Zeilen
pro Sheet >32768 sein kann, und dann reicht ein 16-Bit_Integer nicht mehr.

Grüße

- MIchael -

Ähnliche fragen