Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Matrixfunktion in VBA

Forumthread: Matrixfunktion in VBA

Matrixfunktion in VBA
06.05.2019 14:34:09
Alina
Hallo zusammen,
ich habe eine Frage zu meinem VBA-Code.
Dim Zeile1 As Long
Zeile1 = Cells(Rows.Count, 2).End(xlUp).Row
Range("AP2" & ":AP" & Zeile1).FormulaArray = "=IF(AND(RC[-1]Start!R28C2:R35C3),"""",1)"
Jedoch wird dabei nur die Zelle AO2 mit der Matrix durchgängig verglichen. Wie schaffe ich es, dass der Code dabei in jede einzelne Zeile springt?
Vielen Dank!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrixfunktion in VBA
06.05.2019 15:13:38
Daniel
Hi
was genau möchtest du mit dieser Formel erreichen?
Gruß Daniel
AW: Matrixfunktion in VBA
06.05.2019 20:09:40
Stef
Hi Alina,
mit einer For-Schleife müsste es gehen, sofern ich die Fragestellung richtig verstanden habe.
Dim i As Long
Dim Zeile1 As Long
Zeile1 = Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To Zeile1
Range("AP" & i).FormulaArray = "=IF(AND(RC[-1]Start!R28C2:R35C3),"""",1)"
Next i
Habe es jedoch nicht getestet.
Anzeige
AW: Matrixfunktion in VBA
06.05.2019 23:40:59
Daniel
Stimmt Stef, singuläre Matrixformeln (dh Formeln, bei denen die Matrix nur ein Zwischenergebnis ist und die nur einen Wert als Gesamtergebnis haben), kann man nicht in alle Zellen gleichzeitig schreiben, weil Excel dann davon ausgeht, dass es eine plurale Matrxiformel (mehrere Ergebnisse für die Gesamtformel) ist und keine Einzelformeln.
trotzdem kann man die Schleife vermeiden, indem man die Formel zunächst nur in die erste Zelle schreibt und dann per Copy-Paste überträgt:
Range("AP2").FormulaArray = "=IF(AND(RC[-1]Start!R28C2:R35C3),"""",1)"
Range("AP2").Copy Destination:=Range("AP3:AP" & Zeile1)
wenn ich die Formel richtig verstanden habe, müsste hier aber auch ein einfaches ZählenWenn ausreichen, welches man dann in einer normalen Formel in alle Zellen gleichzeitig schreiben kann:
Range("AP2:AP" & zeile1).Formula = "=IF(CountIf(Start!R28C2:R35C3,RC[-1])=0,"""",1)"
Gruß Daniel
Anzeige
AW: Matrixfunktion in VBA
07.05.2019 10:52:50
Alina
Vielen Dank euch beiden!
Ja die zählenwenn Funktion geht natürlich auch :D Danke für den Tipp!
Aber immerhin weiß ich jetzt, falls ich wieder eine Matrix-Funktion habe, wie ich damit umgehe :)
Viele Grüße
Alina
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18