我有这个Sub进行计算,从CSV文件中获取信息。
Private Sub getTotalAmt(intDuration As integer, strProgrameType As String)
我还有另一个Sub:
Private Sub getMembershipDiscount(ByRef dtDOB As Date, dblTotalAmt as Double)
计算客户的年龄并根据他们的年龄给他们折扣。所以要做到这一点,我必须从上面的Sub(getTotalAmt
)得到总量到这个Sub程序。
我的问题是,如何从该子程序中获得总金额?
答案 0 :(得分:3)
根据定义,子程序没有输出 相反,你想写一个函数。在您的情况下,将您拥有的代码更改为以下内容:
private function getTotalAmt(intDuration As integer, strProgrameType As String) as double
'do the same maths you do in the sub, and store your answer in a variable called "whatever"
getTotalAmt = whatever
end function
然后使用该功能:
sub IUseFunctions()
dim myDiscount as double
myDiscount = getTOtalAtm(1,"s")
end sub
在这个例子中,我已经为你决定折扣价值存储在双重类型号码中。您可以在getTotalAmt函数的顶行将其更改为您喜欢的任何内容。
答案 1 :(得分:2)
请指明返回类型并将您的Sub转换为函数
这样你总能从你的函数中返回一些东西,
如果您为getTotalAmt(int Duration As Integer, StrProgrameType As String)
方法指定了返回类型,那么这将是Function getTotalAmt(int Duration As Integer, StrProgrameType As String) As double
然后从另一种方法中你可以调用它并使用它的重新调整值进行进一步计算或其他任何方法。
<强>即强>
Private Sub sub1()
//You use the Sub2's value in here like
msgbox(sub2)
End Sub
Private Function sub2() As String //You can specifiy any data type you are returning, I specified String just for demnostrate
//Set the value of Sub2 in here
sub2 = "Yourvalue";
End Function