Wie ich jetzt bewusst bin, Array in Excel haben zwei Arten von Darstellung:Konvertieren eines VBA-Array in einer "Spalte" Array
{1,2,3,4} also known as "one-dimensional horizontal array"
und
{1;2;3;4} also known as "one-dimensional vertical array"
Ich habe eine VBA-Funktion, gebe ein Array zurück, aber wenn ich es in einer Funktion verwende, die Arrays benötigt (SUMPRODUCT), zeigt Excel es mit Kommas an. Es wird also immer als horizontales Array interpretiert. Es ist in Ordnung, wenn ich das Produkt mit einem anderen horizontalen Array haben möchte, aber es funktioniert nicht, wenn ich es mit einem vertikalen Array versuche.
VBA:
Function MyRange()
Dim output(2)
output(0) = 1
output(1) = 1
output(2) = 1
MyRange = output
End Function
Excel
=SUMPRODUCT(MyRange();{1,1,1}) works
=SUMPRODUCT(MyRange();{1;1;1}) is not working
Meine Frage?
Wie kann ich Excel haben, um {1; 1; 1} anstelle von {1,1,1} im ersten Array anzuzeigen?
'= SUMMENPRODUKT (TRANSPOSE (MyRange()); {1; 1; 1})'? –
@ScottCraner Wenn Sie eine Antwort erstellen möchten. Ich werde es akzeptieren. Danke vielmals ! –
oder vielleicht 'INDEX ({1; 1; 1}, 0,1)' oder 'MyRange = Application.Transpose (Ausgabe)' in VBA – Slai