Office Anwender Forum
Posts 1-3 of 3
-
Daniel Fichtner Premium MemberThe company name is only visible to registered members.Excel 2007 unter VISTA und VBA - kleines Problem
Guten Tag,
ich zerauf mir gerade die Haare über ein kleines Problem, bei dem ich nicht weiterkomme. Im Rahmen relativ umfangreicher Makros gibt es folgende Code-
ActiveSheet.Cells(zeile, Asc("F") - 64).Select
zeile ist ein Integer, ASC("F")-64 liefert 4 zurück. Laut Debugging steht in Zeile 29 drin. D.h. der aufruf heißt eigentlich
ActiveSheet.cells(29,4).select
Dummerweise schmeißt Excel nach passieren der Stelle einen Fehler "9 - Index außerhalb des gültigen Bereichs". Ich kann mir nicht erklären, wieso...
Unter Excel 2003 auf XP kommt es zu keinem vergleichbaren Fehler.
Beste Grüße,
Daniel Fichtner
This post was modified on 07 May 2009 at 03:22 pm.- 07 May 2009, 3:22 pm
-
Thomas A. Lange Premium Member Group moderatorThe company name is only visible to registered members.Re: Excel 2007 unter VISTA und VBA - kleines Problem
Rein Formal ist der Befehl auch unter Office 2007 in Ordnung.
Haben Sie die gleiche Mappe unter 2003/XP und den gleichen Befehl ausprobiert? Wenn nicht würde ich behaupten gleich ist nicht gleich gleich. Soll heißen auf dem Sheet ist was, was das selektieren blockiert.
- 07 May 2009, 6:02 pm
-
Daniel Fichtner Premium MemberThe company name is only visible to registered members.Re^2: Excel 2007 unter VISTA und VBA - kleines Problem
Guten Tag Herr Lange,
besten Dank für Ihr Feedback. Ich habe tatsächlich die gleiche, nein, dieselbe Mappe einmal unter XP 2003 und einmal unter Vista 2007 ausprobiert. Auf XP/2003 funktionierts, auf Vista/2007 gehts nicht. Es ist aber tatsächlich noch etwas absurder. Es gibt 2 Funktionen, die etwas ähnliches machen.
Einlesen einiger Zellen in eine Liste und anzeige der Liste in einem Combo-Element. Wenn der User jetzt auf einen
Eintrag in der Liste klickt, soll die korrespondierende Zelle markiert werden.
Bei der einen Funktion funktionierts auch unter Vista/2007 tadellos. Bei der anderen jedoch nicht. Einziger Unterschied zwischen beiden Funktionen ist eine IF-Abfrage folgender Art:
If ActiveSheet.Cells(zeile, Asc("X") - 64).Value = 3 Then
Ist an dieser Abfrage was falsch?
Beste Grüße und Dank,
Daniel Fichtner
- 07 May 2009, 6:13 pm
