AW: Formula und Variable
22.03.2013 18:49:33
Daniel
Hi
deine Zellbezüge in der Formel sind in der Form R1C1 geschrieben, daß musst du VBA auch so _
mitteilen:
wksQ1.Range("DA2").FormulaR1C1 = "=....."
die Zellbezüge beziehen sich auf die gleiche Tabelle, in der auch die Formel geschrieben wird, _
es ist beidesmal wksQ1. aus diesem Grund ist es nicht erforderlich, den Tabellenblattnamen vor den Zellbezügen anzugeben.
wksQ1.Range("DA2").Formula = "=CONCATENATE(RC[-104]&"" ""&RC[-103])"
in dem Fall ist es wahrscheinlich auch sinnvoller, die Spaltenbezüge absolut zu setzen, das _
macht die Formel in R1C1 kürzer und übersichtlicher:
wksQ1.Range("DA2").Formula = "=CONCATENATE(RC1&"" ""&RC2)"
solltest du tatsächlich Variablen in die Formel einspielen müssen, dann würde ich dir empfehlen, daß über die Replace-Methode zu machen. Dann brauchst du die Formel nicht in verschiedene fixe und variabele Bestandteile zu zerhacken und damit wird sie übersichtlicher und erleichtert dir die Arbeit, falls du sie nochmal ändern musst.
nochmal an deinem Beispiel:
Schlecht:
wksQ1.Range("DA2").FormulaR1C1 = "=CONCATENATE('" & wksQ1.Name & "'!RC[-104]&"" ""&'" & wksQ1.Name & "'!RC[-103])"
besser, weil deutlich übersichtlicher (vorallem wenn die gleiche Variable an mehreren Stellen _
in der Formel eingefügt werden muss:
MeineFormel = "=CONCATENATE('TBxxx'!RC[-104]&"" ""&'TBxxx'!RC[-103])"
MeineFormel = Replace(MeineFormel, "TBxxx", wksQ1.Name)
wksQ1.Range("DA2").FormulaR1C1 = MeineFormel
gruß Daniel