Hallo,

Jörg Kleinfeld schrieb:
> am Freitag, 23. Juli 2010 um 01:57 schrieben Sie:
>
> ======================== Zitatanfang ========================
>
> >> option explicit
> >> dim ser_man
> >> dim desk
> >> ...
>
> > Ich denke Du hast nichts übersehen,
>
> ========================= Zitatende =========================
>
> das bedeutet, dass eine als variant deklarierte Variable auch
> Daten vom Typ object aufnehmen kann!? Geht das sogar soweit,
> dass alle Typen funktionieren?

Ein bisschen komische Frage weil sich meine Aussage garnicht auf die
Variablendeklaration im DEtail bezog sondern auf das geschilderte
Problem insgesamt und weil ich nicht verstehe wieso Du sowas jetzt
fragst, denn wäre es nicht so wäre ja der ganze Code überhaupt nicht
lauffähig gewesen.

> das bedeutet, dass eine als variant deklarierte Variable auch
> Daten vom Typ object aufnehmen kann!?

ja.

Du kannst Dich auch leicht davon überzeugen das sich der Typ mit
Zuweisung des Inhalts ändert:

dim ser_man
Msgbox TypeName(ser_man)
Set ser_man = WScript.CreateObject("com.sun.star.ServiceManager")
Msgbox TypeName(ser_man)

(die erste MsgBox liefert "Empty" weil nicht explizit mit Typ angegebene
Variablen Variant sind und dann als Empty initialisiert werden, die
zweite MsgBox liefert "Object")

> Geht das sogar soweit,
> dass alle Typen funktionieren?

ja, sofern ich nichts Spezielles übersehe ist das im Konkreten wohl so.


Anmerkung:
In Deiner ersten mail liegt kein Type-Problem im Eigentlichen vor,
welches auf einer Variable beruhen würde, lediglich versuchst Du
fälschlich auf eine Zelle innerhalb der Auflistung aller
Tabellenblättter zuzugreifen, was jedoch nur für ein Tabellenblatt geht
und der Wortlaut der Fehlermeldung ist dann mißverständlich.
Nachdem ich bereits geschrieben hatte das:

"---
Du kannst Dich auch davon überzeugen das Du die Fehlermeldung deshalb
bekommst weil in:

> Set Cell = Sheet.getCellByPosition (1, 1)

garkein Zugriff auf das richtige Objekt besteht, weil hier von OOo
beliebige Ausdrücke der Zeile davor, z.B. selbst wenn die Mappe weniger
als 11 Blätter hat, der Ausdruck:

Set Sheet = Doc.Sheets(10)

nicht zu einem Fehler führt, sondern dieser quasi immer nur als
Doc.Sheets() verstanden wird.
"---


sollte das aber auch verständlich sein.



Gruß
Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an