Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel-2003-Update verursacht plötzlich VBA-Laufzeitfehler

371 views
Skip to first unread message

Jörg Eisenträger

unread,
Sep 12, 2008, 1:41:09 PM9/12/08
to

Hallo,
bisher hatten folgende Zeilen stets anstandslos funktioniert:

Dim sht as Object
For each sht in ActiveWorkbook.Sheets
If sht.Name = "MySheet" then
'tue irgend etwas
End If
Next

Seit dem Update auf Excel 2003 (11.8220.8221) SP3 - muss erst vor kurzem
gewesen sein - bleibt das Makro in der IF-Zeile mit dem Laufzeitfehler
57121 hängen (anwendungs- oder objektorientierter Fehler).

Es sei dahin gestellt, ob es klug war, früher die Variable sht als
Objekt zu deklarieren. Es hatte jedenfalls nicht gestört. Seit der Build
8221 funktioniert das Makro nur noch, wenn sht als Worksheet (vielleicht
auch Sheet) deklariert wird.

Woran liegt das? Was wurde hier upgedatet?
Gibt es evtl. weitere bekannte derartige Inkompatibilitäten?

Wenn ich daran denke, dass meine Makros mal unter XL 2007 laufen sollen,
wird mir richtig schlecht.


Gruß
Jörg
--
LPs auf CD brennen - so geht's: http://www.joergei.de/
E-Mail-Adresse existiert, wird aber nicht gelesen.

Thomas Ramel

unread,
Sep 12, 2008, 2:21:02 PM9/12/08
to
Grüezi Jörg

Jörg Eisenträger schrieb am 12.09.2008

> Dim sht as Object
> For each sht in ActiveWorkbook.Sheets
> If sht.Name = "MySheet" then
> 'tue irgend etwas
> End If
> Next
>
> Seit dem Update auf Excel 2003 (11.8220.8221) SP3 - muss erst vor kurzem
> gewesen sein - bleibt das Makro in der IF-Zeile mit dem Laufzeitfehler
> 57121 hängen (anwendungs- oder objektorientierter Fehler).

Das ist eigenartig und sollte IMO nichts mit einem Update oder ähnlichem zu
tun haben.

> Es sei dahin gestellt, ob es klug war, früher die Variable sht als
> Objekt zu deklarieren. Es hatte jedenfalls nicht gestört.

Wenn du auch Diagramm-Blätter in die Prüfung mit einbeziehen willst ist das
die einzige Möglichkeit diese ebenfalls zu erfassen.

> Seit der Build 8221 funktioniert das Makro nur noch, wenn sht als Worksheet
> (vielleicht auch Sheet) deklariert wird.

Ja wie denn nun - das eine oder das andere?

> Woran liegt das? Was wurde hier upgedatet?
> Gibt es evtl. weitere bekannte derartige Inkompatibilitäten?

Prüfe mal im VBA-Editor unter Extras/Verweise ob es Einträge mit 'Nicht
gefunden' gibt und korrigiere/lösche diese gegebenenfalls.

Teste dann noch mal ob das Makro nun durchläuft

> Wenn ich daran denke, dass meine Makros mal unter XL 2007 laufen sollen,
> wird mir richtig schlecht.

Soooo arg ist es denn auch wieder nicht... ;-)

Mit freundlichen Grüssen
Thomas Ramel

--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]
Microsoft Excel - Die ExpertenTipps

Jörg Eisenträger

unread,
Sep 12, 2008, 5:17:05 PM9/12/08
to

Hallo Thomas,

>> Seit dem Update auf Excel 2003 (11.8220.8221) SP3 - muss erst vor kurzem
>> gewesen sein - bleibt das Makro in der IF-Zeile mit dem Laufzeitfehler
>> 57121 hängen (anwendungs- oder objektorientierter Fehler).
>
>Das ist eigenartig und sollte IMO nichts mit einem Update oder ähnlichem zu
>tun haben.

Wir haben es an mehreren PCs ausprobiert. Wenn Build = 8221 (bei 2 PCs),
dann Laufzeitfehler. Bei folgenden älteren Versionen (auf je einem PC)
kein Laufzeitfehler:
Excel 2003 (11.8220.8202) SP3
Excel 2003 (11.6560.6586) SP2


>> Seit der Build 8221 funktioniert das Makro nur noch, wenn sht als Worksheet
>> (vielleicht auch Sheet) deklariert wird.
>Ja wie denn nun - das eine oder das andere?

Ich habe es nur mit
Dim sht as Worksheet
getestet. Vergiß den Ausdruck in Klammern. Ich sehe gerade, dass "Sheet"
gar kein Variablentyp ist, nur "Sheets".

>Prüfe mal im VBA-Editor unter Extras/Verweise ob es Einträge mit 'Nicht
>gefunden' gibt und korrigiere/lösche diese gegebenenfalls.

OK, kann ich aber erst am Montag tun.

Thomas Ramel

unread,
Sep 13, 2008, 1:42:11 AM9/13/08
to
Grüezi Jörg

Jörg Eisenträger schrieb am 12.09.2008

>>> Seit dem Update auf Excel 2003 (11.8220.8221) SP3 - muss erst vor kurzem


>>> gewesen sein - bleibt das Makro in der IF-Zeile mit dem Laufzeitfehler
>>> 57121 hängen (anwendungs- oder objektorientierter Fehler).
>>
>>Das ist eigenartig und sollte IMO nichts mit einem Update oder ähnlichem zu
>>tun haben.
> Wir haben es an mehreren PCs ausprobiert. Wenn Build = 8221 (bei 2 PCs),
> dann Laufzeitfehler. Bei folgenden älteren Versionen (auf je einem PC)
> kein Laufzeitfehler:
> Excel 2003 (11.8220.8202) SP3
> Excel 2003 (11.6560.6586) SP2

Hmm hier habe ich aktuell

Excel 2003 (11.8169.8221) SP3

am laufen; der Code (1:1 von hier kopiert) rennt ohne Probleme durch.

>>> Seit der Build 8221 funktioniert das Makro nur noch, wenn sht als Worksheet
>>> (vielleicht auch Sheet) deklariert wird.
>>Ja wie denn nun - das eine oder das andere?
> Ich habe es nur mit
> Dim sht as Worksheet
> getestet. Vergiß den Ausdruck in Klammern. Ich sehe gerade, dass "Sheet"
> gar kein Variablentyp ist, nur "Sheets".

OK, Danke für die Klarstellung.

>>Prüfe mal im VBA-Editor unter Extras/Verweise ob es Einträge mit 'Nicht
>>gefunden' gibt und korrigiere/lösche diese gegebenenfalls.
> OK, kann ich aber erst am Montag tun.

Ist es ein bestimmtes Tabellenblatt bei dem der Code hängen bleibt -
welchen Wert hat 'sht' im Moment des Fehlers?
Gibt es Active-X Elemente auf einem bestimmten Tabellenblatt?

Ev. hilft es, das Blatt neu zu erstellen.

Wenn du aber Diagrammblätter eh nicht bearbeiten willst/musst würde ich die
Deklaration 'as Worksheet' verwenden.

Jörg Eisenträger

unread,
Sep 15, 2008, 2:06:43 PM9/15/08
to

Hallo Thomas,

also, habe noch mal getestet, Der Beispiel-Code mit Deklaraion des
Sheets als Object läuft auch auf der neuesten Version durch (Excel 2003
(11.8220.8202) SP3).

Es ist ein bestimmtes Sheet, welches seinen Namen nicht hergeben will,
wenn es as Object deklariert wurde und unter der neuesten Version
11.8220.8202 laufen soll.
sht.index funktioniert, kein Fehler.
sht.name will nicht, runtime error.

In das Sheet wurde vermutlich eine Website einfach per Copy & Paste
reinkopiert. Sie beinhaltet einen JavaScript-Hyperlink (Close Window).
Vielleicht liegt es ja daran.

Da es ein Einzelfall ist, lohnt die weitere Ursachenforschung nicht.
Seltsam ist eben nur, dass ältere Excelversionen damit zurechtkommen und
die neue nicht.

0 new messages