Вызов UDF внутри другого UDF - PullRequest
0 голосов
/ 19 января 2019

Мне нужно вызвать ранее созданный UDF из другого модуля (в той же книге), чтобы построить другой UDF. Как мне вызвать первую функцию?

Это для Excel VBA. Я уже построил свою первую функцию, которая вычисляет балансовую стоимость продукта в определенное время. Он находится в модуле под названием «BookValue», а функция называется «BookVal». Я попытался вызвать его в следующей функции как приложение, использующее Application.BookVal (args), как UDF, использующее UDF (), совсем недавно, набрав NewFunction = BookValue (BookVal), затем следующие шаги ... ничего не работает. Все возвращают # ЗНАЧЕНИЕ.

Вот мой код:

Option Explicit

Function BookVal(UseLife As Single, ResaleAge As Single, PurchPrice As Double, SalVal As Double) As Double


BookVal = PurchPrice - ((PurchPrice - SalVal) / UseLife) * ResaleAge


End Function

Function PostTaxSale(UseLife As Double, ResaleAge As Double, TaxRate As Double, ResaleVal As Double, PurchPrice As Double, SalVal As Double, BookVal As Double) As Double


PostTaxSale = BookVal(UseLife, ResaleAge, PurchPrice, SalVal)
PostTaxSale = ResaleVal - PostTaxSale
PostTaxSale = Tax * PostTaxSale
PostTaxSale = ResaleVal - PostTaxSale

End Function

В результате получается # VALUE

Но я хочу, чтобы код извлекал выбранные ячейки в качестве аргументов и возвращал результат уравнения: Перепродажная стоимость после уплаты налога = Перепродажная стоимость - налог * (Перепродажная стоимость - Балансовая стоимость).

1 Ответ

0 голосов
/ 19 января 2019

Вы должны предоставить все запрашиваемые критерии:

 Function BookVal(UseLife As Double, ResaleAge As Double, PurchPrice As Double, SalVal As Double) As Double 
     BookVal = PurchPrice - ((PurchPrice - SalVal) / UseLife) * ResaleAge
 End Function

 Function PostTaxSale(UseLife As Double, ResaleAge As Double, TaxRate As Double, ResaleVal As Double, PurchPrice As Double, SalVal As Double) As Double
    PostTaxSale = BookVal(UseLife, ResaleAge, PurchPrice, SalVal)
    PostTaxSale = ResaleVal - PostTaxSale
    PostTaxSale = TaxRate * PostTaxSale
    PostTaxSale = ResaleVal - PostTaxSale    
 End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...