|
автор: ???????? (03.08.2006 в 00:00) |
|
| Есть такая функция IRR(), она возвращает внутреннюю ставку доходности для ряда потоков денежных средств.
Эта функция есть как в VBA, так и в EXCEL.
Вопрос, почему в EXCEL считает, а в VBA вываливается с ошибкой.
Это глюк моего офиса (2003)?
Кто нибудь может пояснить?
Пример для сравнения (можна запускать и в Екселе и в Аксесе)
Public Sub hhhhh1()
Dim Y
Dim X
Dim ssss() As Double
Y = 59
ReDim ssss(Y)
For X = 0 To Y
If X = 0 Then
ssss(X) = -2801408
Else
ssss(X) = 89154.01
End If
Debug.Print ssss(X)
Next X
Debug.Print Excel.WorksheetFunction.IRR(ssss())
Debug.Print IRR(ssss())
End Sub | |
|
| |
|
автор: ???????? (03.08.2006 в 00:00) |
|
| Re: IRR() в VBA глючит. Кто нибудь знает , Почему? Ха, бухгалтера прояснили дело.
Я, по своей наивности, предполагал, что обращаясь к функции екселя IRR(), я в принципе через него обращаюсь к ВБА-шной.
Видимо нет.
Вобщем так, у этой функции есть второй параметр, и по умолчанию он полагается равным 0,1. и в екселе (так, по крайней мере написано в хелпе) и в ВБА.
Так вот, в екселе он по умолчанию либо равен 0, либо в него встроен механизм изменения этого параметра на лету, если он не указан. В ВБА фиг с маслом.
Если в моем примере поставить
Debug.Print IRR(ssss(), 0)
то все пойдет как по маслу.
Во какие у меня умные бухгалтера. | |
|
| |
|
автор: Explorer (03.08.2006 в 00:00) |
|
| афигеть... нам бы таких (с черной завистью) | |
|
| |
|
автор: osmor (03.08.2006 в 00:00) |
|
| прочитал до "... возвращает внутреннюю ставку доходности для ряда потоков денежных средств." дальше не стал, испугался, если уж в начале ничего не понял, то что же дальше .... | |
|
| |