我的问题是如何从函数中返回2个值( myApp.fields.map(field => field.obj.label = field.label.default);
myApp.fields.map(field => field.label.textContent = field.obj.label);
& Sales_Tax_Amount
)。
到目前为止,这是我的代码:
Total_Price
答案 0 :(得分:0)
函数不能有两个返回,但它可以返回一个可以容纳多个值的变量类型,如Array。它还可以将变量传递给它byref
,更改变量值,然后最初调用的子例程可以使用这些更改的值:
返回包含两个值的数组:
Sub test()
myArray = myFunction
Debug.Print myArray(0), myArray(1)
End Sub
Function myFunction() As Variant
Dim returnVals(0 To 1) As Double
returnVals(0) = 1.36
returnVals(1) = 2.5
myFunction = returnVals
End Function
运行子程序" test()"将以下值打印到即时窗格
1.36 2.5
或者,您可以传入两个变量byref
。该函数将更改其值,并且在函数运行后,传递变量的子例程将能够使用更改的值。
Sub test()
Dim var1 As Double
Dim var2 As Double
Call mySub(var1, var2)
Debug.Print var1, var2
End Sub
Function mySub(ByRef variable1 As Double, ByRef variable2 As Double)
variable1 = 1.36
variable2 = 2.5
End Function
这会将函数中设置的值打印到即时窗口。
您还可以将函数中确定的值存储到工作表中,然后在子例程中将其拾取,或将值存储在全局变量中。除非你要反复使用这些值并且需要它们在vba运行之间持久化,否则应该避免这两种情况。
答案 1 :(得分:0)
如果您将数组分配给函数名称,那么您的函数fnTax_Calculator()
将“正常”:
Dim a : a = fnTax_Calculator()
WScript.Echo Join(a)
Function fnTax_Calculator()
Dim Arry(1)
'Function should return Sales_Tax_Amount when it is called in the form of %x.xx
'Sales_Tax_Amount = Sale_Amount * Sales_Tax_Rate
'Function should return Total_Price when it is called in the form of $xxxx.xx
'Total_Price = Sale_Amount + Sales_Tax_Amount
Arry(0) = 47 ' Sales_Tax_Amount
Arry(1) = 11 ' Total_Price
' to specify the return value, assign it to the function's name
fnTax_Calculator = Arry
End Function
输出:
cscript 48654959.vbs
47 11