dies ist eine einfache Demo von dem, was ich tun möchte. Ich möchte eine Formel auf einen Zellbereich setzen (z. B. C1 bis C10).
Range("C1").Formula = "=A1+B1"
aber wie man Formel dazu bringt, dynamische Zellen wie folgt zu verwenden:
Range("C1:C10").Formula = "=Ax+Bx"
in Wirklichkeit ist es so,
C1 = A1 + B1
C2 = A2 + B2
C3 = A3 + B3
C4 = A4 + B4
C5 = A5 + B5
...
C10 = A10 + B10
so ändern Sie die RHS-Werte dieser Formel, damit sie oben funktionieren: Range("C1:C10").Formula = "=Ax+Bx"
Ich würde die Formel in C1 aktualisieren. Dann kopiere die Formel von C1 und füge sie bis C10 ein ...
Nicht sicher über eine elegantere Lösung
Range("C1").Formula = "=A1+B1"
Range("C1").Copy
Range("C1:C10").Pastespecial(XlPasteall)
Range("C1:C10").Formula = "=A1+B1"
So einfach ist das.
Er füllt den Bereich automatisch mit der Formel (FillDown).
Ich denke, das ist die einfachste mögliche Antwort: 2 Zeilen und sehr verständlich. Es emuliert die Funktion, eine in eine Zelle geschriebene Formel über einen Zellbereich zu ziehen.
Range("C1").Formula = "=A1+B1"
Range("C1:C10").FillDown
Verwenden Sie FormulaR1C1:
Cells((1,3),(10,3)).FormulaR1C1 = "=RC[-2]+RC[-1]"
Im Gegensatz zu Formula hat FormulaR1C1 eine relative Referenzierung.
Benutze das
Sub calc()
Range("C1:C10").FormulaR1C1 = "=(R10C1+R10C2)"
End Sub
Wenn Sie versuchen, eine Spalte auszufüllen, können Sie dies in Excel 2010 mit einem einzigen Tastaturbefehl ausführen:
Strg-D füllt entweder eine ausgewählte Zeile oder ein ausgewähltes Array oder eine ausgewählte Spalte aus. Die relative Referenzierung wird angewendet.