2010-11-19 12 views
1

Ich benutze die C# Excel-Interop-Framework zu automatisieren generieren eine Reihe von Berichten für meine Firma, und ich frage mich, ob jemand weiß, wie Gleichung ziehen mit diesem zu tun.C# Excel Interop Formel ziehen

Wenn ich dies mit einem benannten Bereich tun könnte, wäre dies noch besser, aber selbst wenn ich die Zeilen so codieren muss, dass es entlang der Linien von A10: J10 runter zu A20: J20 geht, wäre das wahrscheinlich in Ordnung.

Sogar irgendwelche Hinweise auf eine Webseite, die erklärt, wie man das tut, würde sehr geschätzt werden, da ich irgendwie auf diesem festsitze.

Danke!

Antwort

5

Bereich Objekt hat eine Methode namens AutoFill, sollten Sie das versuchen.

range.AutoFill(destinationRange); 
0

Ich habe so etwas noch nicht so lange her. Hier ist ein Beispiel für meinen Code:

Excel.Range rng, rngResize; 
rng = (Excel.Range)oSheet.get_Range("A10", "J10"); 
rngResize = rng.get_Resize(10, Missing.Value); 
rngResize.Formula = "=B9+I8"; 

Die Formel wird relativ angewendet. Und ich habe für jeden Schritt separate Variablen verwendet, so dass sie Disposed sein können. Lassen Sie mich wissen, ob das hilft.

+0

dachte ich über das tun dies kontrolliert werden, aber ich fand diesen Link http://msdn.microsoft.com/en-us/library/microsoft.office .tools.excel.namedrange.get_resize (VS.80) .aspx, das besagt, dass die Funktion nicht direkt aus dem Code verwendet werden soll. –

0

Sie können eine Excel-Tabelle (ListObject) erstellen, indem Sie die Add-Methode der ListObjects-Auflistung des Worksheet-Objekts aufrufen. Dies entspricht der Verwendung des Befehls "Format als Tabelle" in Excel. Jede in einer Tabellenzeile eingegebene Gleichung füllt automatisch alle Zeilen der Tabelle mit relativen Verweisen auf Tabellenspalten. Dieses Verhalten ist standardmäßig aktiviert, kann aber durch die Einstellung bei

Globals.ThisWorkbook.Application.AutoCorrect.AutoFillFormulasInLists