Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1588to1592
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

Matrixformel in VBA mit Laufvariable

Matrixformel in VBA mit Laufvariable
09.11.2017 14:41:52
Lorenz
Tag zusammen,
ich habe mal wieder ein Problem: Ich möchte mit VBA eine Matrixformel in mehrere Zellen eintragen. Pro zusätzliche Zelle soll jedoch auch ein Wert in der Matrixformel erhöht werden.
Code:
For i = 1 To Range("A3")
Cells(4 + i, 4).FormulaArray = "=INDEX(Tabelle1!D3:D11,SMALL(IF(Tabelle1!E3:E11=Tabelle3!A2,(ROW(Tabelle1!3:11)-2)),i))"
Next
Die Laufvariable i befindet sich am Ende der Formel. Tippe ich die Formel mit 1 anstatt dem i, funktioniert sie. Jedoch will ich, dass anstatt der 1 hochgezählt wird.
Ich hoffe, mein Problem ist verständlich und jemand von euch Experten hat eine Antwort dazu =)
Viele Grüße
Lorenz

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrixformel in VBA mit Laufvariable
09.11.2017 15:04:01
Werner
Hallo Lorenz,
"=INDEX(Tabelle1!D3:D11,SMALL(IF(Tabelle1!E3:E11=Tabelle3!A2,(ROW(Tabelle1!3:11)-2))," & i & "))"
Gruß Werner
AW: Matrixformel in VBA mit Laufvariable
09.11.2017 15:20:10
Lorenz
Danke dir Werner für die schnelle Antwort!
AW: Matrixformel in VBA mit Laufvariable
09.11.2017 16:15:44
Werner
Hallo Lorenz,
warum verzichtest du nicht auf eine Schleife? In deiner Formel kannst du ja den Bezug auf die entsprechende Zeile()-4 zum hochzählen benutzen. Die Formel schreibst du dann in einem Rutsch in den kompletten Bereich. Das ist, je nachdem wieviele Zeilen mit der Formel beschrieben werden, wesentlich schneller, als die Formel zeilenweise in die Zellen zu schreiben.
Public Sub aaa()
Dim loLetzte As Long, raBereich As Range
With Worksheets("Tabelle1")
Set raBereich = .Range(.Cells(5, 4), .Cells(.Range("A3").Value + 4, 4))
raBereich.FormulaArray = _
"=INDEX(Tabelle1!D3:D11,SMALL(IF(Tabelle1!E3:E11=Tabelle3!A2,(ROW(Tabelle1!3:11)-2)),Row()-4))"
End With
Set raBereich = Nothing
End Sub
Gruß Werner
Anzeige

347 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige