我需要有关此功能的帮助。该函数没有返回值。
Function CalcComm(salesdate As Date, salesamount As Double) As Double
If sales_A < 10000 Then
Commission = salesamount * 0.03
ElseIf salesamount >= 10000 And salesamount < 25000 Then
Commission = salesamount * 0.04
ElseIf salesamount >= 25000 Then
Commission = salesamount * 0.06
Else: Commission = salesamount * 0.06
End If
If month(saledate) = 1 Or month(saledate) = 2 Or month(saledate) = 12 Then
Commission = salesamount * 0.015
End If
End Function
Run Code Online (Sandbox Code Playgroud)
您没有为函数分配您想要返回的值。例如CalcComm = Commission。
sales_A没有声明,我认为应该是salesamount,saledate是一个拼写错误,应该是salesdate。Option Explicit请在模块顶部插入以强制变量声明(并间接帮助您捕获拼写错误)。
您的代码逻辑可以使用Select Case语句,下面的代码将返回:
< 10000;10000-25000和;>= 25000及以上。Option Explicit
Function CalcComm(salesdate As Date, salesamount As Double) As Double
Dim Commission As Double
Select Case Month(salesdate)
Case 1, 2, 12: Commission = salesamount * 0.015
Case Else
Select Case salesamount
Case Is < 10000: Commission = salesamount * 0.03
Case Is < 25000: Commission = salesamount * 0.04
Case Else: Commission = salesamount * 0.06
End Select
End Select
CalcComm = Commission
End Function
Run Code Online (Sandbox Code Playgroud)