AW: Formel per Code erstellen - Sprachversion?
03.12.2007 23:21:34
Daniel
Hi
also deine beiden Beispiele in R1C1
Sub Test_Formula1()
Range("A1:A25").Formula = "=RC[1]"
End Sub
Sub Test_Formula2()
Range("A1:A25").Formula = "=R2C1"
End Sub
von der Lesbarkeit her gibt sich das nicht viel, aber in R1C1-Schreibweise ist eindeutig, was gemeint ist.
in der Normalen Schreibweise kann ein Relativer Zellbezug auch ganz schnell mal zu einem Absoluten werden.
Probier mal die beiden Codes hier, dann verstehts du vielleicht, was ich meine und warum ich in Makros die R1C1-Schreibweise bevorzuge:
Aufgabe: Es soll jeweils der Wert aus der Zelle rechts daneben gelesen werden:
Sub Test_formula()
dim Formeltext as string
Formeltext = "=B1" 'ist ja ein Relative Zellbezug, weil keine Dollarzeichen drinstehen
Range("A1").formula = Formeltext
Range("A3").formula = Formeltext
Range("A5").formula = Formeltext
End Sub
Sub Test_formulaR1C1()
dim Formeltext as string
Formeltext = "=RC[1]"
Range("A1").formulaR1C1 = Formeltext
Range("A3").formulaR1C1 = Formeltext
Range("A5").formulaR1C1 = Formeltext
End Sub
Zeig mir doch mal, wie du das in der "normalen" Schreibweise "einfach" korrekt abbilden willst (die Formel könnte u.U. ja auch etwas länger sein)
Außerdem ist es mir relativ wurscht, welche Schreibweise lesbarer ist.
Ich entwickle die Formel ja nicht im Makro-Code, sondern normal in der Tabelle und bastle dann solange daran rum, bis sie mir das gewünschte Ergebnis liefert.
Wenns dann soweit ist, gehe ich einfach ins Direktfenster und lasse mir den Formel-Code mit
?Selection.FormulaR1C1
anzeigen und kopiere in nur noch ins Makro rein.
Dann noch die Anführungszeichen doppeln (in längeren Formeln auch gerne mit Suchen-Ersetzen) und fertig.
ob das Ding jetzt leicht lesbar ist oder nicht, ist mir dann auch egal.
Man kann sich das leben in der R1C1-Welt natürlich leichter machen, wenn man nur das relativ addressiert , was unbedingt relativ addressiert werden muss (also andersrum wie in der normalen Schreibweise), dann werden die Formeln auch nicht so arg komplexer.
Gruß, Daniel