09.07.2018, 15:31
Hallo Zusammen
ich möchte per VBA Befehl eine Matrixformel in eine Zelle schreiben lassen.
Ich habe die Formel erst in Excel aufgebaut und getestet, hier funktioniert sie einwandfrei.
Nun möchte ich sie in VBA Sprache übersetzen und hier sitzt das Problem.
Ich weiss ich muss für eine Matrixformel in VBA mit FormularArray arbeiten und ausserdem Englische Formelbezeichnungen sowei "," statt ";" verwenden.
Habe ich auch so umgesetzt, allerdings bekomme ich mit meiner bisherigen "Übersetzung" ich immer den Fehler "Laufzeitfehler '9': Index ausserhalb des gültigen Bereichs"
Formel in Excel
=INDEX(Projekte[[Projektbezeichnung]:[Projektnummer]];AGGREGAT(15;6;(ZEILE([Projektbezeichnung])-1)/(--(SUCHEN(Overview!$O$12;[Projektbezeichnung])>0));ZEILE()-1);1)
Formel in VBA
Sheets("Projects1000").Cells(4, 4).FormulaArray = "=INDEX(Projekte][[Projektbezeichnung]:[Projektnummer]],AGGREGATE(15,6,(ROW([Projektbezeichnung])-1)/(--(SEARCH(Overview!$O$12,[Projektbezeichnung])>0)),ROW()-1),1)"
Ich vermute mal es liegt an einer verkehrten Schreibweise, eventuell mit den eckigen Klammern der Bereichsnamen?
Es wäre super wenn jemand die Lösung weiss
ich möchte per VBA Befehl eine Matrixformel in eine Zelle schreiben lassen.
Ich habe die Formel erst in Excel aufgebaut und getestet, hier funktioniert sie einwandfrei.
Nun möchte ich sie in VBA Sprache übersetzen und hier sitzt das Problem.
Ich weiss ich muss für eine Matrixformel in VBA mit FormularArray arbeiten und ausserdem Englische Formelbezeichnungen sowei "," statt ";" verwenden.
Habe ich auch so umgesetzt, allerdings bekomme ich mit meiner bisherigen "Übersetzung" ich immer den Fehler "Laufzeitfehler '9': Index ausserhalb des gültigen Bereichs"
Formel in Excel
=INDEX(Projekte[[Projektbezeichnung]:[Projektnummer]];AGGREGAT(15;6;(ZEILE([Projektbezeichnung])-1)/(--(SUCHEN(Overview!$O$12;[Projektbezeichnung])>0));ZEILE()-1);1)
Formel in VBA
Sheets("Projects1000").Cells(4, 4).FormulaArray = "=INDEX(Projekte][[Projektbezeichnung]:[Projektnummer]],AGGREGATE(15,6,(ROW([Projektbezeichnung])-1)/(--(SEARCH(Overview!$O$12,[Projektbezeichnung])>0)),ROW()-1),1)"
Ich vermute mal es liegt an einer verkehrten Schreibweise, eventuell mit den eckigen Klammern der Bereichsnamen?
Es wäre super wenn jemand die Lösung weiss