Hallo
ich stehe ein wenig auf dem Schlauch:
Excel legt für jedes installierte Macro unter
HKCU,"Software\Microsoft\Office\11.0\Excel\Options","OPEN" an. Das Erste Macro also "OPEN", das nächste "OPEN1", dann "OPEN2" usw.
Ich möchte nun zählen, wieviele Opens da schon stehen, damit ich das nächste freie benutzen kann.
Das Zählbeispiel aus der Hilfe : For Counter,1,3,,"da" funktioniert bei mir, allerdings raffe ich trotzdem nicht, wie ich damit zählen kann.
Wer hat Erbarmen?
Einen sonnigen Tag wünscht Ralf
for Schleife
Hallo Ralf,
hier nochmal der Lösungsansatz:
hier nochmal der Lösungsansatz:
ECHO Start
for Counter,1,5,,Frage
[Frage]
If DoesRegKeyExist ("HKCU,Software\Microsoft\Office\11.0\Excel\Options,OPEN%Counter%") == "1" Then "RegKeyIsThere" Else "RegKeyIsntThere" Endif
[RegKeyThere]
Echo RegKey vorhanden (Durchlauf: %Counter%)
[RegKeyIsntThere]
Echo RegKey _nicht_ vorhanden (Durchlauf: %Counter%)
-
- Posts: 3
- Joined: 20. May 2005, 11:50
- Contact:
...vielen Dank, aber wie verlasse ich die Schleife vorzeitig
Hallo Herr Niemann
die Schleife tut es nun, aber mein Hauptproblem, dass die Schleife sooft durchlaufen wird wie angegeben, bleibt. Was muss man tun, damit die Schleife, wenn sie einmal in den Else-Zweig gegangen ist, abbricht (weil genau dieser Zählwert mich ja interessiert) und nicht weiterzählt, bis der Höchstwert erreicht ist?
Wenn man irgendwo ein "Exit" unterbringt, heißt das ja "Programmende", "abort" ist noch schlimmer. Wenn ich in einen anderen Zweig springe, wird dieser ebenfalls bis zur höchten Zahl durchlaufen.
Wie ist die Syntax?
Einen schönen Tag wünscht
Ralf
die Schleife tut es nun, aber mein Hauptproblem, dass die Schleife sooft durchlaufen wird wie angegeben, bleibt. Was muss man tun, damit die Schleife, wenn sie einmal in den Else-Zweig gegangen ist, abbricht (weil genau dieser Zählwert mich ja interessiert) und nicht weiterzählt, bis der Höchstwert erreicht ist?
Wenn man irgendwo ein "Exit" unterbringt, heißt das ja "Programmende", "abort" ist noch schlimmer. Wenn ich in einen anderen Zweig springe, wird dieser ebenfalls bis zur höchten Zahl durchlaufen.
Wie ist die Syntax?
Einen schönen Tag wünscht
Ralf
-
- Moderator
- Posts: 7969
- Joined: 13. Dec 2004, 23:10
- Location: Adendorf/Lüneburg
Einfach die Variable auf den Endwert setzen, dann fliegt man aus der FOR-Schleife raus.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
-
- Posts: 3
- Joined: 20. May 2005, 11:50
- Contact:
set i=... und es funktioniert
Hallo an alle
dank vielfacher Unterstützung fähiger Menschen ist mein Projekt geglückt.
Vielen Dank
das Gesamtkonstrukt sieht nun so aus:
[Set:Product]
ECHO Start
for i,1,9,,Frage
[Frage]
If DoesRegKeyExist ("HKCU,Software\Microsoft\Office\11.0\Excel\Options,OPEN%i%") == "1" Then "da" Else "nichtda" Endif
[da]
Echo es sind %i% da
[nichtda]
SET y=%i%
SET i=9
Echo y=%y%
in y steht nun der erste benutzbare Wert.
dank vielfacher Unterstützung fähiger Menschen ist mein Projekt geglückt.
Vielen Dank
das Gesamtkonstrukt sieht nun so aus:
[Set:Product]
ECHO Start
for i,1,9,,Frage
[Frage]
If DoesRegKeyExist ("HKCU,Software\Microsoft\Office\11.0\Excel\Options,OPEN%i%") == "1" Then "da" Else "nichtda" Endif
[da]
Echo es sind %i% da
[nichtda]
SET y=%i%
SET i=9
Echo y=%y%
in y steht nun der erste benutzbare Wert.
Who is online
Users browsing this forum: Google [Bot] and 4 guests