[英]VBA custom IF function not working
我有以下IF語句:
lF(C:C=CE,0.3,(IF(C:C=CS,0.2,(IF( C:C=TE,0.2,(IF( C:C=MV,0.25,(IF( C:C=HCV,0.375,(IF( C:C=HM,0.3,(IF( C:CLM,0.125,(IF( C:C=FF,0.125,(IF( C:C=OE,0.3,0))))))))))
然后在第一個VBA模塊中將其作為函數輸入:
Function DepRate(pVal As String) As Long
If pVal = "HCV" Then
DepRate = 0.375
ElseIf pVal = "OE" Then
DepRate = 0.3
ElseIf pVal = "CE" Then
DepRate = 0.3
ElseIf pVal = "CS" Then
DepRate = 0.2
ElseIf pVal = "TE" Then
DepRate = 0.2
ElseIf pVal = "MV" Then
DepRate = 0.25
ElseIf pVal = "FF" Then
DepRate = 0.125
ElseIf pVal = "LM" Then
DepRate = 0.125
Else
DepRate = 0
End If
End Function
在excel上使用該函數時,即使特定單元格中的值為true,結果也始終為0。
如何糾正呢?
這是一個引用命名范圍的公式。 因此,例如C:C = CE
正在將列C中的值與命名范圍CE
。
因此,例如,您需要具有這樣的功能...
Function DepRate(pVal As String) As Long
If pVal = ActiveSheet.Range("HCV").Value Then
DepRate = 0.375
etc... etc..
您也可以使用Select..Case,如Veve所說。 但是,也許最好將這些值保存在隱藏的工作表中,然后可以更輕松地配置查找。
我想知道例如命名范圍CE
是什么? (公式>名稱管理器)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.