Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: joan am 02.03.05 - 16:49:39
-
Ich arbeite gerade an einer OLE Excel Library und versuche eine Funktion zu implementieren, mit der man ein Sheet nach Namen auswählen kann. Rein OLE technisch keine große Sache, aber Notes wirft mir Knüppel zwischen die Beine. Ich möchte aber auch nicht ausschließen, daß ich im Moment ganz kräftig auf der Leitung sitze.
Der Knackpunkt ist, daß man der Excel Funktion den Namen in Anführungszeichen übergeben muß, damit Excel weiß, daß es um einen Namen und nicht um die Blattnummer geht:
Me.xlApp.Sheets("Gesamt").Activate
funktioniert bspw. problemlos. Nun möchte ich aber den Namen natürlich variabel halten:
Sub SelectByName (sheet As String)
Me.xlApp.Sheets(sheet).Activate
End Sub
und muß dazu die Anführungszeichen vor und nach dem String mit übergeben. Die Variable sheet muß also bspw. "Gesamt" enthalten.
|"| & sheet & |"|
oder
Chr$(34) & sheet & Chr$(34)
funktionieren nicht, das ergibt seltsamerweise immer ""Gesamt""
Und jetzt gehen mir so langsam die Ideen aus. Wie kann ich Notes dazu bringen, einzelne Anführungszeichen zu erzeugen?
-
Nee musst du nicht denn ein String aus Notes wird richtig gewrappt. Sonst würde ja auch dein Beispiel nicht immer zwei Anführungszeichen ergeben.
-
Hallo Thomas,
Schön wärs... ;)
Aber dein Hinweis hat mich darauf gebracht, woran es liegen könnte:
Sub SelectByName (sheet As String)
Me.xlApp.Sheets(Cstr(sheet)).Activate
End Sub
Die Variable muß tatsächlich nochmal explizit nach String gecastet werden. Warum das so ist, entzieht sich leider meiner Kenntnis, denn bisher war ich der Ansicht, daß die Deklaration in der Funktion das überflüssig macht.
Offenbar wohl doch nicht... ;)
Besten Dank! :)
-
Hi,
das Problem kenn' ich. Das ist nicht nur bei Excel so, sondern auch bei Word. Teilweise bekam ich auch bei solchen Fällen einen Type mismatch. Woran's liegt habe ich bisher auch nicht rausfinden können.
Inzwischen mach ich das fast überall nur noch mit CStr().
Axel