Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Ole2000 am 11.08.05 - 09:19:41
-
Ich versuche Formeln, die mit Script dynamisch Zusammengesetzt werden nach Excel zu übertragen.
Die Übertragung von Daten in die Zellen klappt.
Bei der übertragung von Formeln jedoch sehe ich z.B. folgendes:
Im Scriptdebugger: E10-C10-A10
In Excel kommt an: 'E10' - $10:$10-'A10'
Ich hab in den zahlreichen Beiträgen zum Thema Excel schon viele guten Anregungen gefunden, aber nicht die Lösung für mein Problem.
Vielleicht kann ja jemand helfen.
Vielen Dank schon mal vorab.
-
Hi,
ein bisschen Code würde uns die Sache sehr erleichtern. Alles andere ist Kaffeesatzleserei bzw. ein Befragen der Kristallkugel. Und die ist heute etwas beschlagen. ;D
Axel
-
Das Script, welches die Formel einträgt
xlRange: die Zielzelle in Execl, wird auch gefüllt
xlFormula: die eintztragende Formel
xlSheet1.Range(xlRange).FormulaR1C1 = xlFormula
Die Formel:
rc = MakeFormula("="+"D" + Cstr(xl_DataRowAkt) + "-" + "C" + Cstr(xl_DataRowAkt) + "-" + "E" + Cstr(xl_DataRowAkt) + ")" )
xl_DataRowAkt ist ein Integer
Ergibt D10 - C10 - E10 im Debugger, also korrekt
in Excel steht exact das hier: ='D16'-$P:$P-'E16'
-
Hi,
die Kristallkugel ist nicht viel klarer geworden.
Was macht MakeFormula und wie sieht denn da das Ergebnis aus? Wie wird xlFormula gefüllt und was ist das für ein Variablentyp.
Man müsste die Zusammenhänge besser erkennen können.
Axel
-
Das ist der Inhalt einer Function MakeFormula(xlRange As String, xlFormula as String)
Mehr steht nicht drinne, dieses Script soll die Formel nach Excel übertragen
Die Formel kommt dort auch an, allerdings nur wie unten beschrieben.
xlSheet1.Range(xlRange).FormulaR1C1 = xlFormula
Diese Formel wird an die Function übergeben. Sie wird aus statischen Komponenten und der Variablen xl_DataRowAkt gebildet(Integer)
rc = MakeFormula("="+"D" + Cstr(xl_DataRowAkt) + "-" + "C" + Cstr(xl_DataRowAkt) + "-" + "E" + Cstr(xl_DataRowAkt) + ")" )
Ergibt D10 - C10 - E10 im Debugger, also korrekt
in Excel steht exact das hier: ='D16'-$P:$P-'E16'
-
Hi,
irgendwas passt da aber nicht zusammen.
Der Aufruf der Funktion soll so sein: MakeFormula(xlRange As String, xlFormula as String)
Du rufst sie aber so auf: MakeFormula("="+"D" + Cstr(xl_DataRowAkt) + "-" + "C" + Cstr(xl_DataRowAkt) + "-" + "E" + Cstr(xl_DataRowAkt) + ")" )
Mir fehlt hier die Angabe für den Parameter xRange
Axel
-
Sorry, war nich ganz korrekt von mir. Der Parameter wird natürlich mit übergeben. ("H" + Cstr(xl_DataRowAkt))
Die Zelle für die Formel wird ja auch korrekt angesprungen. Es ist nur das Format der Formel nach dem Export.
-
@Axel Haste was rausfinden können?
-
Hi,
ich hab's bei mir mal so ähnlich nachgestellt.
Dabei ist mir zuerstmal eine falsche Klammer am Ende der Formel aufgefallen.
"="+"D" + Cstr(xl_DataRowAkt) + "-" + "C" + Cstr(xl_DataRowAkt) + "-" + "E" + Cstr(xl_DataRowAkt) + ")"
Das ergibt das hier: =D10-C10-E10)
Mein Code sieht so aus:
...
Set objExcel = CreateObject("Excel.Application")
Call objExcel.Workbooks.Add
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
strTemp = "="+"D" + Cstr(xl_DataRowAkt) + "-" + "C" + Cstr(xl_DataRowAkt) + "-" + "E" + Cstr(xl_DataRowAkt)
objSheet.Range("A1").Value = strTemp
...
Damit habe ich die Formel auch so in der Zelle A1 stehen. Das Zellformat ist Standard.
Axel
-
Oh Mann !!!
Es lag am ".Value"
Nun gehts bei mir auch
Was hat es mit objSheet.Range("A1").FormulaR1C1 auf sich???
Damit hatte ich das ja vergeblich versucht !
P.S. Vielen Dank!!!