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