hey Balu,
Also muss man nun noch verstärkter aufpassen mit welchem Office man ein Makro erstellt.
Nicht unbedingt;) Dass es (leider) oft unterschiedliche Ausprägungen gibt.. na gut.
Makro korrekt programmiert - sollte immer korrekt laufen;) Basic neigt leider dazu, den Benutzer "schludern" zu lassen.. und dann wird es eben schwieriger.
Beispiel hier:
Würde man korrekt progammieren und alle Variablen deklarieren, so wäre die Variable "addvalue2" auch als Double definiert worden. Dies entspricht dem Typ der Value-Eigenschaft der Zelle.
die Variable "dim addvalue2 as double" würde jetzt aber schon vordimensioniert und hätte den Wert "0". Kannst Du direkt prüfen mit "msgbox addvalue2".
Anders sieht es im Übrigen aus, wenn Du statt der Value-Eigenschaft die Formula-Eigenschaft ausliest. Diese wird tatsächlich als "string" abgebildet und hätte bei einer leeren Zelle als Rückgabe einen String der Länge 0 - also einfach leer. Hier würde Deine Prüfung übrigens auch funktionieren.
formula bildet den Inhalt der Zelle als string ab - ist die String-Länge 0, dann ist zeimlich wahrscheinlich die Zelle auch leer;) (also, mir fällt jedenfalls keine Variante ein, in der das nicht zutreffen würde). Acuh ein Wert der Zelle (Value) wird in formula als string abgebildet, ebenso wie natürlich Texte.
Andererseits bietet die API je gerade die Type-Eigenschaft und damit eine korrekte und sichere Unterscheidung. Also gleich das Richtige nehmen und so entsprechend programmieren - liegste immer richtig:)
VG
Tom