2009-06-30 3 views
1

Auf der Daily Dose of Excel Website, geschrieben von dem verstorbenen Frank Kabel, gibt es einige Formeln, die für ATP-Funktionen stehen können. Da ich kein Excel-Guru bin, habe ich Schwierigkeiten, einen (bis jetzt!) Zu VB6 zu konvertieren. (Warum ich das tue ich beziehen kann, wenn die NDA abläuft.)Wie konvertiere ich die SERIESSUM-Funktion in VB6?

Das Problem, das ich habe, ist, mit dem Code für SERIESSUM im Stehen, nämlich

=SUMPRODUCT(coefficients,x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1))) 

nun die SUMPRODUCT und ROWS Funktionen, die ich habe in der Lage ziemlich einfach mit

Public Function SUMPRODUCT(a1 As Variant, a2 As Variant) As Double 
    Dim dRes As Double 
    Dim dVal As Double 
    Dim i As Long 
    If LBound(a1) = LBound(a2) And UBound(a1) = UBound(a2) Then 
     For i = LBound(a1) To UBound(a1) 
      dVal = a1(i) * a2(i) 
      dRes = dRes + dVal 
     Next 
    End If 
    SUMPRODUCT = dRes 
End Function 

Public Function ROWS(a1 As Variant) 
    ROWS = UBound(a1) - LBound(a1) + 1 
End Function 

zu machen, was ich ‚get‘ noch nicht

  • wieistwertet auf ein Array
  • und was das Array könnte da draußen

Irgendwelche Excel-Gurus enthalten?

Antwort

2

ROW (INDIRECT ("1:" & ROWS (Koeffizienten))) - 1

Wenn Koeffizienten 5 Zeilen hat, wird dies das Array zurück {1,2,3,4,5}. Der Rest des Progressions

{1m, 2m, 3m, 4m, 5m)

{n + 1 m, n + 2m, n + 3 m, n + 4 m, n + 5m)

{x^n + 1m, x^n + 2m, x^n + 3m, x^n + 4m, x^n + 5m)

Das resultierende Array wird 'Serie summiert' gegen Koeffizenten.

Sie können die Progression in der Excel-Formelleiste sehen, indem Sie Strg + = auf markierte Teile der Formeln drücken. Die Anzahl der Zeichen, die in der Formelleiste angezeigt werden können, ist begrenzt. Wenn also die Koeffizienten viele Zeilen enthalten, erhalten Sie möglicherweise den Fehler "Formel zu lang".

In der Bearbeitungsleiste ROW auswählen (INDIREKT (" 1: "& ZEILEN (Koeffizienten))) - 1 und drücken Sie Strg + =. Wählen Sie dann einen anderen Teil Ihrer Formel aus, achten Sie dabei auf öffnende und schließende Klammern und drücken Sie Strg + =. Sie können dies iterieren, bis Sie die gesamte Formel berechnet haben. Wenn Sie fertig sind, vergewissern Sie sich, dass Sie die Zelle verlassen, damit Sie nicht die ursprüngliche Formel verlieren.

Siehe auch Episode 474 here.

+0

Wunderbar. Fabelhaft. Ich habe mich den ganzen Tag lang ein- und ausgeschaltet, um auf eine Antwort zu warten. Danke danke danke. Asante. Shukria. Merci. Gracias. Xie xie. Obligad. Tenkyu tru. Danke. Tak. – bugmagnet

Verwandte Themen