Ich denke das Problem ist hier dass die Formel als String zusammengesetzt wird und nun nicht mehr als Mtrx Formel für "FormulaArray" deklariert werden kann. Jedenfalls klappt es nicht und ich finde im www nichts derartiges für VBA, nur in Foren für C#, MATLAB, JAVA o. Ä. VBA: Formel in Zelle Eintragen. gibt es derartige Fragen wie "String als String bzw StringArray übergeben"
Vieleicht geht das irgendwie mit dress(ReferenceStyle:=xlA1)
Möglicherweise bin ich aber auf dem Holzweg und die Lösung ist simpel! Mag hier mal einer von Euch helfen. Vielen Dank
Betrifft: AW: s As String als MtrxFormel in Zelle! Bitte um Hilfe
Geschrieben am: 22. 2013 12:44:47
hier die FormulaArray-Variante:
Sub ArrayFormelSchreiben()
s = "=SUMPRODUCT((LEFT($G$1:$G" & n & ", 3)=""DDT"")*(MATCH($E$1:$E$" & n & _
"&LEFT($G$1:$G$" & n & ", 3), $E$1:$E$" & n & _
"&LEFT($G$1:$G$" & n & ", 3), 0)=ROW($1:$" & n & _
")), SUBTOTAL(103, INDIRECT(""V""&ROW($1:$" & n & "))))"
'Formel als Array schreiben in Zelle 'K2'
'bei FormulaArray gibt es keine länderspezifische Local-Variante,
'deshalb die amerikanischen Funktionsnamen
("K2").
- Vba excel formel einfügen bank
- Vba excel formel einfügen program
- Vba excel formel einfügen file
2005 12:05:13
Hallo Wolfgang,
aus dem Herber-Fundus
Sub ziehmichrunter()
Dim iRow As Integer
iRow = Cells(, 29)(xlUp) '29 ist Spalte AC
Range("BL37"). Formula = "=deine aufgezeichnete Formel"
Range("BL37:BL"&iRow). FillDown
End Sub Gruß Harald
von: Jens
Geschrieben am: 13. 2005 12:10:59
Hi,
muss FormulaLocal heißen! mfg Jens
Geschrieben am: 13. 2005 12:20:03
Hallo, wenn ich die Formel reinkopiere bekomme ich die Fehlermeldung erwarte Anweisungsende der Buchstabe D am ende der Formel wird markiert. Range("BL37"). FormulaLocal = "=WENN(ODER(AC37="";AD37=0);"";DATEDIF(WENN(ODER(AC37>C$1;AD37B$1);B$1;WENN(UND(B$1=B$1);AC37;0)));WENN(ODER(AC37>C$1;AD37=B$1);AD37;WENN(UND(AD37>=C$1;AD37>B$1);C$1;0)));"d"))"
Geschrieben am: 13. Vba excel formel einfügen program. 2005 12:38:00
Na dann;-)))
also nicht einfach nur reinkopieren. Das soll ja keinen Spass mein Chef immer;-))
Formel per Rekorder aufzeichnen und diese Aufzeichnung reinkopieren. Gruß Harald
Betrifft: AW: Formel per VBA kopieren - SchusselF
von: Luc:-?
2. in der R1C1-Schreibweise ist bei den Zelladressen so:
- "R" steht für Row/Zeile
- "C" steht für Column/Spalte
- danach folgt die Zeilen- bzw Spaltennummer
- für absolute Zellbezüge steht folgt die Nummer direkt, ohne Klammern. R1C1 ist also der Bezug auf die Zelle in Zeile 1 in der Spalte 1, dh A1 (bzw $A$1, da absoluter Bezug)
- bei relativen Zellbezügen steht der Versatzwert in eckigen Klammern. dh R[7]C[3] ist nicht der Bezug auf C7, sondern der Bezug auf die Zelle 7 Zeilen unterhalb und 3 Spalten rechts der Zelle, in welcher sich die Formel befindet. bei Relativen Bezügen auf die gleiche Zeile oder Spalte R[0] bzw C[0] darf man das [0] auch ganz weglassen. RC1 ist der Bezug auf die Zelle in der geleichen Zeile in Spalte 1.
wenn du also unterhalb der Werte einer Spalte die Summe haben willst, ist die Formel einfach: Cells(Y, 3). Vba excel formel einfügen bank. FormulaR1C1 = "=Sum(R7C:R[-2]C)"
die Formel kannst du so in jede Spalte einfügen. Gruß Daniel
von: UweD
Geschrieben am: 23. 2016 09:55:28
Hallo
für die eingetragenen Blätter
für die Spalten C bis F Sub Summen()
Dim TB, ARR, LR As Long, SP As Integer
ARR = Array( "NeuerName", "Tabelle2", "Tabelle3")
For Each TB In ARR
With Sheets(TB)
For SP = 3 To 6 'von C bis F
LR = (, SP)(xlUp) + 2
(LR, SP).
FormulaR1C1 = _
Range("F2"). AutoFill Destination:=Range("F2:F" & lngLetzte)
End Sub
MfG Tom
Hi Bernhard,
du musst nicht die R1C1-Schreibweise für das Eintragen der Formel verwenden - mittels Eigenschaft. FormulaLocal kannst du die Formel ganz normal eintragen:
' letzte belegte Zeile im Tabellenblatt
lngLetzte = (What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Range("F2"). [COLOR=#0000cd][B]FormulaLocal[/B][/COLOR] = "=WENN(UND(D2<>""EP"";D2<>"""";C2<>""Rose"";C2<>""Tulpe"";C2<>""Lilie"";C2<>""Gummibaum"";C2<>""Müller"");I2;"""")"
Range("F2"). AutoFill Range(Cells(2, 6), Cells(lngLetzte, 6))
Oder du verwendest die englische Formelschreibweise und die Eigenschaft. Formula
Range("F2"). [COLOR=#0000cd][B]Formula[/B][/COLOR] = "=IF(AND(D2<>""EP"", D2<>"""", C2<>""Rose"", C2<>""Tulpe"", C2<>""Lilie"", C2<>""Gummibaum"", C2<>""Müller""), I2, """")"
Beachte, dass dabei außer der englischen Funktionsnamen auch das ";" durch ", " ersetzt werden muss. Formel per VBA einfügen. Bis später,
Karin
SSSSUUUPPPEERR... danke für die Hilfe.
Sie können einfach:
Aufzeichnung starten
Die Formel (mit relativen/absoluten Bezügen je nach Bedarf) in die Zelle eingeben und die Eingabetaste drücken
Aufzeichnung stoppen
VBA öffnen und die Formel überprüfen, indem Sie sie nach Bedarf anpassen und den Code kopieren und einfügen, wo es notwendig ist. Ich finde, es ist viel einfacher, eine Formel in eine Zelle einzugeben, als die entsprechende Formel in VBA zu tippen. Beachten Sie ein paar Sachen:
Der Makro-Aufzeichner verwendet immer die Eigenschaft. FormulaR1C1
Der Makro-Aufzeichner unterscheidet zwischen absoluten und relativen Zellenbezügen
VBA-Eigenschaft FormulaR1C1
Die Eigenschaft FormulaR1C1 verwendet eine Zellenreferenzierung im Stil von R1C1 (im Gegensatz zum Standardstil A1, den Sie von Excel gewohnt sind). VBA - Formel kopieren - variabler bereich. Hier sind einige Beispiele:
Sub FormulaR1C1_Beispiele()
'Referenz D5 (absolut)
'=$D$5
Range("a1"). FormulaR1C1 = "=R5C4"
'Referenz D5 (Relativ) aus Zelle A1
'=D5
Range("a1"). FormulaR1C1 = "=R[4]C[3]"
'Referenz D5 (Absolute Zeile, Relative Spalte) aus Zelle A1
'=D$5
Range("a1").