VBA вызывает функцию, не использующую напрямую - PullRequest
0 голосов
/ 10 июля 2019

У меня есть две функции. Пользователи вызывают первую функцию (FunctOne) в Excel и выбирают диапазон входных данных для выполнения чего-либо. Вторая функция (FunctTwo) использует этот частичный вывод и выполняет нечто большее. Я хочу показать FunctTwo вывод.

Мой вопрос: как я могу показать результат FunctTwo? Нужно ли создавать третью функцию? если да, как это выглядит?

Большое спасибо,

Function FunctOne(var1, var2 As Range)

Do something 'perform some calculations using inputs

End Function

===========

Function FunctTwo(FunctOne As Variant) As Variant

Do something 'use the output of FunctOne and do something

End Function

PD: я пытался сделать все в одной функции, но цикл не работает, как я ожидал. Так что, может быть, если я изменю свой подход, используя две функции, это может сработать. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 11 июля 2019

Если вы хотите установить последовательность вычислений, которая должна быть выполнена в определенном порядке, вам нужно создать подпрограмму, которая управляет вычислениями.

Public Sub MyCalculations()
    Dim var1 as Range, var2 as Range

    var1 = ...
    var2 = ...
    Dim f1 as Variant
    f1 = FunctOne(var1, var2)

    Dim f2 as Variant
    f2 = FunctTwo(f1)

End Sub

Выше предполагается, что FunctOne и FunctTwo не изменяют рабочий лист (не допущение побочных эффектов). Рекомендуется объявлять аргументы ByVal, чтобы функции не могли изменить ни одну из локальных переменных, использованных выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...