簡體   English   中英

VBA自定義IF功能不​​起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM