Namenskonvention VBA Function - MS Excel 2010 vs. S7 ?

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2022
Beiträge
21.965
Reaktionspunkte
6.836
Zuviel Werbung?
-> Hier kostenlos registrieren
Beim arbeiten mit VBA in MS Excel 2010 (64-Bit) ist mir folgendes aufgefallen:

In einer xls-Datei in einem VBA-Modul schreibe ich eine Function, deren Name mit "S7" beginnt (z.B. "S7func"). Diese Function kann nicht in einer Formel in einer Zelle eines Tabellenblatts verwendet werden! Beim Versuch, die Function in einer Zellenformel einzugeben kommt die allgemeine Fehlermeldung "Die eingegebene Formel enthält einen Fehler."

Ändere ich den Name der Function, so daß er nicht mit "S7" beginnt (z.B. "xS7func") dann kann die Function erfolgreich in Zellenformeln verwendet werden.

Weiß jemand warum Excel VBA-Functions mit Namen "S7..." so behandelt bzw. kennt jemand eine Stelle wo dieses Verhalten dokumentiert ist?

Harald
 
Moin Harald!
Das muss Excels immanente Aversion gegen Siemens sein.
S7test und S5test mag mein Excel auch nicht. X7test geht aber.
Ich habe in Excel ständig Probleme mit Namen und musste schon oft auf Namen ausweichen, die dann meist recht unpassend waren oder ein Schema gesprengt haben, das ich einhalten wollte.
In Deinem Fall hatte ich vermutet, dass Excel bei S7 an die Zelle S7 gedacht hat und dadurch verwirrt wurde. Dann hätte das aber auch mit X7 passieren müssen.
Eine ganz böse und nicht seltene Falle in VBA unter Excel ist, dass Excel unter zwei verschieden Namen gerne mal diesselbe Variable anspricht.
Da kann man sich einen Wolf nach der Ursache von Fehlfunktionen suchen.
Es gab mal Compiler, die konnten ellenlange Namen, haben aber nur die ersten n Zeichen benutzt, um die Namen zu identifizieren.
Da das Phänomen bei Excel aber auch bei sehr kurzen Namen auftreten kann und andererseits bei sehr langen nicht auftreten muss ... : keine Ahnung.
Ich vermute, es gibt kilometerlange Listen von "reservierten" Namen, die man aber nicht kennt und über die man dann nur zufällig stolpert.
Verdächtig ist immer, wenn Excel für einen Namen die gewählte GrossKleinSchreibung hartnäckig nach seinen eigenen Vorstellungen ändert - der Name ist dann schon anderweitig vergeben.
Schönes Wochenende!
Gruss, Heinileini

P.S.:
... kennt jemand eine Stelle wo dieses Verhalten dokumentiert ist?
Wer will sich denn wirklich die Mühe machen, alle Unzulänglichkeiten von Excel zu dokumentieren, geschweige denn, zu lesen?
Lohnt sich doch gar nicht. Der nächste Update bringt doch wieder neue Probleme.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Heinileini,

Danke für Deine Ausführungen, auch wenn sie unbefriedigend sind. Anscheinend hält es MS tatsächlich nicht für nötig, wirkende Spezialregeln bei den Namenskonventionen zu dokumentieren - wer weiß, durch welche dirty Programmiertricks die entstanden sind ...

Harald
 
Moin Harald!
... wer weiß, durch welche dirty Programmiertricks die entstanden sind ...
Harald
In diesem Zusammenhang glaube ich nicht an "dirty ProgrammierTricks" ... die machen das genau so, wie wir (es leider auch müssen):
Do
- probieren
- if widerErwarten nicht auf die Schnauze fallen then exit do
- nächstbesten Namen auswürfeln
Loop
Danke für die FiFaEinladung! Weiss noch nicht, ob, wann, ...

Gruss, Heinileini

PS: habe absichtlich nicht Do while ... oder loop until ... geschrieben, denn das würde ein wenig Logik voraussetzen ;o)

PPS: habe mir inzwischen nochmal mein Problem mit dem GüligkeitsBereich von Variablen-Deklarationen (modulübergreifend in VBA bei Excel) vorgenommen.
Klappt jetzt. Warum vorher nicht, weiss ich nicht ... habe doch nichts anders gemacht!? Ausser zwischendurch abgespeichert.
 
Zuletzt bearbeitet:
Zurück
Oben