Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Matrix Formel per VBA eintragen

Matrix Formel per VBA eintragen
11.11.2021 09:17:59
Sebastian
Hi zusammen,
ich hätte eine Frage. Ich trage gerade verschiedene Formeln per Makros ein. Sonst sieht das Makro so aus:

Range("BO19:BO" & Rows.Count).ClearContents
Range("BO19:BO" & Cells(Rows.Count, 2).End(xlUp).Row).FormulaR1C1 = "=(RC[-2]*-1)"
Jetzt würde ich gerne eine Matrix Formel eintragen lassen. Was müsste ich da ändern ?
Die Formel lautet

{=MIN(ABS(E19:F19-H19))}
Danke im Voraus ;)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
~.FormulaArray = "=MIN(ABS(E19:F19-H19))" -owT-
11.11.2021 09:23:43
Luc:-?
:-?
AW: ~.FormulaArray = "=MIN(ABS(E19:F19-H19))" -owT-
11.11.2021 09:43:10
Sebastian
Hi, auf das FormulaArray = bin ich auch schon gekommen. Allerdings soll er die Formeln ja nach unten weiterführen. Frage ich es so ein wie du es schreibst, bekomme ich überall die gleiche Formel.
AW: ~.FormulaArray = "=MIN(ABS(E19:F19-H19))" -owT-
11.11.2021 10:45:11
hary
Moin

With Range("BO19:BO" & Cells(Rows.Count, 2).End(xlUp).Row)
.Cells(1).FormulaArray = "=MIN(ABS(E19:F19-H19))"
.FillDown
End With
gruss hary
AW: ~.FormulaArray = "=MIN(ABS(E19:F19-H19))" -owT-
11.11.2021 10:49:03
Sebastian
Dankeschön :)
AW: ~.FormulaArray = "=MIN(ABS(E19:F19-H19))" -owT-
11.11.2021 10:54:09
Daniel
Hi
Bei Matrixformeln kommt es darauf an, was du für eine Matrixformel hast.
Ist es eine "echte" Matrixformel die mehrere Ergebnisse ausgibt, dann musst du die Matrixformel in alle Zellen gleichzeitig schreiben:

Range("a1:A10"). FormulaArray = "=Deine Matrixformel"
Du hast jedoch eine Matrixformel, deren Mehrfach-Ergeniswerte noch innerhalb der Formel zu einem Wert zusammengefasst werden (das macht das Min).
In dem Fall muss man die Formel zuerst in die erste Zelle schreiben und dann in die folgezellen kopieren:

Range("A1"). FormulaArray = "=Deine Matrixformel"
Range("A1").Copy Destination:=Range("A2:A10")
Allerdings gilt das für ältere Excelversionen.
Wie das bei Excel 365 mit automatischer Erkennung von Matrixformel und AutoSpill bei mehreren Ergebniswerten gelöst werden muss/kann, weiß ich nicht, da ich noch kein Excel 365 habe.
Aber probiers mal nach der alten Methode, in der Regel achtet MS darauf, dass auch bei Veränderungen die alten Codes weiterhin funktionieren.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige