У меня есть макрос, вычисляющий XIRR; раньше говорил мне о доходности инвестиций.
Соответствующий код:
Dim CFArray() As Variant
CFArray = Range("Q22:Q24").Value
Dim DateArray() As Variant
DateArray = Range("L22:L24").Value
ROR = WorksheetFunction.Xirr(CFArray, DateArray, 0.1)
Код работает большую часть времени.
Но когда конечное значение очень низкое, скажем, ноль или пенни, Я получаю
«Ошибка времени выполнения '1004': невозможно получить свойство XIRR класса функции рабочего листа».
Вот мои данные:
Row Col L Col Q
22 6/30/2009 999.07
23 5/1/2010 .01
Когда я изменяю окончательное значение (ячейка Q23) на 5.01 или 4.01, я получаю ответ. 3.01 возвращает ту же ошибку, что и выше.
Использование данных в простой старой формуле Excel (в ячейке) дает правильный ответ ... что-то вроде -99,99%.
Некоторые серии будут иметь несколько платежей и выводов, поэтому IRR не вариант. Я считаю, что могу написать код, который буквально записывает функцию Excel в ячейку, но похоже, что VBA должен быть в состоянии приспособить эту важную финансовую функцию.
Спасибо за любые идеи.