VBA - Excel - 错误13

时间:2014-03-25 15:15:10

标签: excel vba excel-vba

我是VBA的新手,我得到这个错误13 - 类型mismtached但我不知道为什么,我发现没有任何帮助... 任何提示? (对不起,用法语)

Function EIDPA(Coût_actif, Tx_dépréciation, Tx_marginal, Coût_opportunité)
    EIDPA = ((Coût_actif * Tx_dépréciation * Tx_marginal) / (Coût_opportunité + Tx_dépréciation)) * ((1 + (0.5 * Coût_opportunité)) / (1 + Coût_opportunité))
End Function

Sub EIDPA2()
    Coût_actif = InputBox("Entrez le coût de l'actif SVP", "Calculateur", "100000")
    Tx_dépréciation = InputBox("Entrez le taux de dépréciation pour ammortissement SVP", "Calculateur", "0.30")
    Tx_marginal = InputBox("Entrez le taux marginal d'imposition SVP", "Calculateur", "0.50")
    Coût_opportunité = InputBox("Entrez le coût d'opportunité applicable SVP", "Calculateur", "0.05")
    MsgBox "La valeur actuelle des économies d'impôts est de: " _
    & Module1.EIDPA(Coût_actif, Tx_dépréciation, Tx_marginal, Coût_opportunité) & "$", vbInformation, "Calculateur"
End Sub

2 个答案:

答案 0 :(得分:1)

你应该正确地Dim修改你的变量;否则你试图将字符串变量用作数字:

Function EIDPA(Coût_actif As Double, Tx_dépréciation As Double, Tx_marginal As Double, Coût_opportunité As Double) As Double
    EIDPA = ((Coût_actif * Tx_dépréciation * Tx_marginal) / (Coût_opportunité + Tx_dépréciation)) * ((1 + (0.5 * Coût_opportunité)) / (1 + Coût_opportunité))
End Function
Sub EIDPA2()
    Dim Coût_actif  As Double
    Dim Tx_dépréciation As Double
    Dim Tx_marginal  As Double
    Dim Coût_opportunité As Double

    Coût_actif = CDbl(InputBox("Entrez le coût de l'actif SVP", "Calculateur", "100000"))
    Tx_dépréciation = CDbl(InputBox("Entrez le taux de dépréciation pour ammortissement SVP", "Calculateur", "0.30"))
    Tx_marginal = CDbl(InputBox("Entrez le taux marginal d'imposition SVP", "Calculateur", "0.50"))
    Coût_opportunité = CDbl(InputBox("Entrez le coût d'opportunité applicable SVP", "Calculateur", "0.05"))
    MsgBox "La valeur actuelle des économies d'impôts est de: " _
    & Module1.EIDPA(Coût_actif, Tx_dépréciation, Tx_marginal, Coût_opportunité) & "$", vbInformation, "Calculateur"
End Sub

答案 1 :(得分:0)

您收到错误,因为InputBox会返回字符串,而您在这里尝试将字符串相乘:

EIDPA = ((Coût_actif * Tx_dépréciation * Tx_marginal) / (Coût_opportunité + Tx_dépréciation)) * ((1 + (0.5 * Coût_opportunité)) / (1 + Coût_opportunité))

尝试将您的法语变量声明为整数/浮点数,看看是否有帮助。 More info