VBA调用不直接使用的函数

时间:2019-07-10 17:35:26

标签: vba function

我有两个职能。用户在Excel中调用第一个函数(FunctOne),然后选择一系列输入来执行某些操作。第二个函数(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 :(得分:0)

如果要建立必须按特定顺序执行的计算序列,则需要创建一个驱动计算的子例程。

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

以上假设FunctOneFunctTwo不会更改工作表(不是副作用的假设)。最佳做法是声明参数ByVal这样函数就不能更改上面使用的任何局部变量。