AW: Variabel in Matrixformel einfügen
04.05.2018 11:51:40
Daniel
Hi
die Formel ist ein einfacher String.
wenn du einen String aus mehreren Bestandteilen zusammensetzen willst, dann geht das über das Verkettungszeichen &.
die fixen Teilstrings müssen jeweils mit dem Anführungszeichen beendet werden:
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],XYZ!R1C3:R" & m & "C6,4,0)"
sollten die Formeln komplexer werden, empfehle ich folgende Variante, da durch das Verketten das ganze recht unübersichtlich wird.
1. schreibe den Formeltext in eine eigene Variable
2. setze an der Stelle, an der die andere Variable eingefügt werden soll, einen DummyText ein. Dieser darf in der Formel an anderer Stelle nicht vorkommen (z.B. "xxx")
3. Ersezte mit Replace den Dummytext durch den Variablenwert:
dim FO as string
dim m as as Long
m = Sheets("XYZ").Range("A65536").End(xlUp).Row
FO = "=VLOOKUP(RC[-1],XYZ!R1C3:RxxxC6,4,0)"
FO = Replace(FO, "xxx", m)
ActiveCell.FormulaR1C1 = FO
sieht zwar erstmal aufwendiger aus, aber wenn die Formeln komplexer sind und der wert m ggf auch öfters eingefügt werden muss, ist es eine echte erleicherung.
Gruß Daniel