Excel.Arbeitsblatt.Cells[row,col] = "=Formel" vs-Bereich.set_Value(Missing.Wert, arrayFormulas)
Excel.Worksheet.Cells[row,col] = "=Formula /reference"
Während in der oben aktualisiert Excel die Formel /Referenz und zeigt das Ergebnis in der Datenblattansicht, in der Sie den code unten, wenn Sie mit Range.set_Value(..)
dem Datenblatt wird nicht mehr aktualisiert
string[,] myFormulas = new string[nrRows, nrColumns];
...
myFormulas [x,y] = e.g. "=SUM(D1:D" + rowNr + ")";
myFormulas [x,y+1] = e.g. "=Table1!A1";
...
Range.set_Value(Missing.Value, myFormulas)
und es zeigt nur die Formel als string, z.B. =Table1!A1
.
Kann ich nicht machen, es zu aktualisieren. Weder mit CalucalteAll()
noch mit RefreshAll()
noch mit anyhing. Irgendwelche Vorschläge, wie man ein update im Datenblatt?
BEARBEITEN : Sie können ein gesamtes array mit einer einzigen Anweisung Range.set_Value(Missing.Value, myFormulas)
. Meine Frage ist, wie excel auswerten der Formeln in das array (und behandeln Sie nicht als einfache strings, oder die Zellen einzeln die Excel als berechnet.)?
- cross-posted in Social-MSDN
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich, dass die rangeVariable.Formel = rangeVariable.Wert übersetzt ein 'Formel als text in eine bona fide-Excel-Formel, und zwar gegen alle Zellen in diesem Bereich.
Hoffe, das hilft
set_Value(...)
Denke ich nicht, dass es irgendeinen Weg gibt, um die
Formula
Wert für jede gegebene Zelle außer durch die gezielte Einstellung derFormula
Eigenschaft für es, eine Zelle zu einem Zeitpunkt.Überprüfung der Eigenschaften und Beispiele hier
so, ich denke, was Sie tun müssen, ist etwas mehr wie folgt:
.Formula
, und es funktioniert. Aber meine Frage war ein wenig mehr als diese !!value
odervalue2
Eigenschaft...die Behandlung einer Formel, wie ein text-string. Ich bin mir nicht sicher, es gibt keine Methode, die Sie verwenden können, um dieFormula
Eigenschaft in der Art und Weise, die Sie versuchen. Ich habe zu Fragen, obwohl...wenn Sie zum erstellen des array manuell sowieso, warum es so eine große Sache zu überspringen, das array Schritt und setzen Sie einfach die Zelle Formeln sondern direkt das array, und setzen Sie von dort?copy
Funktionalität, so dass Sie sicher, dass Sie die richtigen Optionen zum kopieren von Formeln und nicht die Werte. Sie würden einfach kopieren Sie die gespeicherte Formeln aus Ihrer anfänglichen Lage und plop Sie Sie in einen neuen...geringfügige änderungen erforderlich danach. Speichern Sie einfach die original-Reihe in einem eigenen Objekt für die einfache Rückbezug.Ich gerade erst kennen gelernt hatte dieses problem vor einer Weile, und suchte fast den ganzen Tag für die Lösung, aber kein Glück.
Und ich endlich eine Lösung gefunden, wenn Sie versuchen, um fix ein weiteres problem bezieht sich auch auf die Zelle Datentyp, in die Sie sollten, setzen Sie Ihre 2-dimensionales array zu 'Objekt' - Typ anstelle von Typ 'string'. Der Grund des Problems ist, meiner Meinung nach, ist die Formel, die Eigenschaften (Wert, Wert2) automatisch schreiben der Daten hängt von Datentyp im code. Der code sollte so etwas wie dieses:
Hoffe diese Hilfe!