2017-03-19 123 views
0

我有两个功能(其中一个被称为另一个内部)共享一些变量作为自变量,如下面的例子:声明函数参数在Excel VBA

Public Function f1(a as Double, b as Double, c as Double) 
"code" 
End 

Public Function f2(a as Double, b as Double, c as Double, t as Integer) 
var = f1(a, b, c) 
"code" 
End 

是否有申报重复的方式变量(A,b和C)外的这两种功能一次,这样的事情:

Dim a As Double, b As Double, c As Double 

Public Function f1(a, b, c) 
"code" 
End 

Public Function f2(a, b, c, t as Integer) 
var = f1(a, b, c) 
"code" 
End 

或者是这些参数具体到他们父母的功能呢?

+1

否不存在,但取决于您要达到的目标,您可以考虑传递属性对应于a,b和c的类或用户定义类型的实例。 – Joe

+0

@CyanD是从Excel单元中调用的这些函数是否为** UDF **?或者从同一模块中的“Sub”调用它们? –

+0

噢,好的。谢谢您的回复。 这是一个大学作业,我们还没有学习类模块。 然后我会为每个变量显式声明。 – CyanD

回答

0

一种方法来做到这一点,定义全局变量,不要将它们用作函数的参数。

Dim a As Double, b As Double, c As Double 

Public Function f1() 
"code use a,b and c" 
End 

Public Function f2(t as Integer) 
var = f1() 
"code use a,b and c" 
End 
+0

作为对这些功能是否为UDF的问题的回应,操作程序声明“是的,它们在单元中使用”。如果是这样,函数'f2'将需要传递所有四个参数 - Excel将无法直接设置模块范围变量'a','b'和'c'。 – YowE3K