[英]VBA Function Return no Value
我需要有關此功能的幫助。 此函數沒有返回值。
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
您沒有為函數分配要返回的值。 例如CalcComm = Commission
。
sales_A
未聲明,我認為應該是salesamount
, saledate
是一個錯字,應該是salesdate
。 請在您的模塊頂部插入Option Explicit
以強制執行變量聲明(並間接幫助您發現拼寫錯誤)。
您的代碼邏輯可以使用Select Case
語句,以下代碼將返回:
< 10000
為 3%;10000-25000
和;>= 25000
及以上為 6%。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
除了不返回函數名中的值外,兩個 If 函數都包含錯誤:
UDF
)Option Explicit
Function CalcComm( _
ByVal SalesDate As Date, _
ByVal SalesAmount As Double) _
As Double
Dim CommRate As Double
Select Case SalesAmount
Case Is < 10000
CommRate = 0.03
Case Is < 25000
CommRate = 0.04
Case Else
CommRate = 0.06
End Select
Select Case Month(SalesDate)
Case 1, 2, 12
CommRate = CommRate + 0.015
End Select
CalcComm = SalesAmount * CommRate
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.