Использование Application.Evaluate для XNPV - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь использовать функцию XNPV в VBA, однако WorksheetFunction.XNPV не предоставляет параметр, соответствующий скорости.Я наткнулся на обходной путь Application.Evaluate, но у меня возникли проблемы с определенной скоростью, которую я использую.Мой код выдает ошибку 2029, которая, как я полагаю, связана с тем, что функция Evaluate не распознает переменную "low"

Вот мой код для справки

Dim high            As Double       
Dim low             As Double       
Dim mid             As Double

low = 1
high = 100
mid = (low + high) / 2

Debug.Print Application.Evaluate("=XNPV(low,CQ7:CQ367,E7:E367)")

1 Ответ

0 голосов
/ 12 июня 2018

Если вы хотите сослаться на переменную, которую вы создали в коде VBA, вам нужно объединить ее в формулу, вы не можете явно включить ее в строку, как вы делали выше.

Debug.Print Application.Evaluate("=XNPV(low,CQ7:CQ367,E7:E367)")

должно быть

Debug.Print Application.Evaluate("=XNPV(" & low & ",CQ7:CQ367,E7:E367)")
...