如何将SERIESSUM函数转换为VB6?

问题描述:

在已故的Frank Kabel编写的Daily Dose of Excel网站上,有一些公式可以代表ATP功能。不是一个Excel大师,我正在努力将一个(到目前为止!)转换为VB6。 (为什么我这样做,一旦NDA耗尽我可以涉及。)如何将SERIESSUM函数转换为VB6?

我遇到的问题是与代码站在了SERIESSUM,即

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

现在SUMPRODUCT和行功能我已经能够与

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 

相当简单渲染我不“得到”又是

  • 如何x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1))计算为一个数组
  • ,什么该数组可能包含

任何Excel的大师在那里?

ROW(INDIRECT( “1:” & ROWS(系数))) - 1

如果系数具有5行,这将返回该数组{1,2,3,4,5}。进展的其余部分是

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

{N + 1M,N + 2M,N + 3M,N + 4M,N + 5M)

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

得到的数组对系数有效。

您可以在公式的突出显示的部分使用Ctrl + =在Excel的公式栏中看到进度。您可以在公式栏中显示多少个字符,因此如果系数有很多行,则可能会出现“公式太长”错误

在公式栏中,选择ROW(INDIRECT(“ 1:“& ROWS(系数))) - 1并按Ctrl + =。然后选择公式的另一部分,确保您匹配开头和结束括号,然后按Ctrl + =。你可以迭代这个,直到你计算出整个公式。完成后,请务必将ESCAPE移出单元格,以便不会丢失原始公式。请参阅Episode 474 here

+0

很好。奇妙。我一整天都在登录和退出,等待答案。谢谢你,谢谢你,谢谢你。阿桑特。 Shukria。留言Merci。格拉西亚斯。谢谢。 Obligad。 Tenkyu tru。丹科。德。 – bugmagnet 2009-06-30 15:19:08