FormulaLocal = String
28.02.2017 12:46:26
Michael (der Alte)
Hi,
...und einen String kannst Du mit & beliebig zusammensetzen.
Gerade bei umfangreicheren Formeln bietet es sich an, die Funktionalität direkt im Tabellenblatt zu entwickeln, die Formel dann als Text einzulesen, und zwar im Direktfenster (Aufruf in VBA mit Strg+G):
?range("D2").FormulaLocal
=SUMME(B2:B11)
Die Formel erscheint, sobald die vorhergehende Zeile mit dem ? mit Enter abgeschlossen wurde.
Von hier kann man sie direkt in den Code übernehmen und den *variablen* Teil anpassen, z.B. so:
Sub formel()
Dim formeltext As String
Dim bis As String
bis = "B11"
formeltext = "=SUMME(B2:" & bis & ")"
Range("D2").FormulaLocal = formeltext
End Sub
Das ist die Variante mit *einer* Formel über einen variablen Bereich.
Die andere Variante schreibt eine Reihe "gleicher" Formel (mit zeilenweise geändertem Bezug) in einen vertikalen (Spalten-) Bereich, also etwa so:
Sub formelBereich()
Dim formeltext As String
Dim anzahl As Long
Dim Sp1 As String, Sp2 As String
Sp1 = "B": Sp2 = "D"
' Addition von B2 und D2
' nächste Zeile B3 und D3 usw.
anzahl = 10 ' Anzahl der Zeilen, wie auch immer ermittelt
formeltext = "=" & Sp1 & "2+" & Sp2 & "2"
Range("E2").Resize(anzahl, 1) = formeltext
Debug.Print formeltext
' Ausgabe im Direktfenster: =B2+D2 wie gewünscht
End Sub
Schne Grüße,
Michael