Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1688to1692
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
Matrixfunktion in VBA
06.05.2019 12: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!

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

Betreff
Datum
Anwender
Anzeige
AW: Matrixfunktion in VBA
06.05.2019 13:13:38
Daniel
Hi
was genau möchtest du mit dieser Formel erreichen?
Gruß Daniel
AW: Matrixfunktion in VBA
06.05.2019 18: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.
AW: Matrixfunktion in VBA
06.05.2019 21: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 08: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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige