简体   繁体   English

VBA-Excel-错误13

[英]VBA - Excel - Error 13

I am new to VBA, I am getting this Error 13 - types mismtached but I have no idea why and I found nothing helpful... any hint ? 我是VBA的新手,我收到此错误13-错误类型的消息,但我不知道为什么,发现没有任何帮助...任何提示? (Sorry it's in french) (对不起,它是法文)

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

You should be properly Dim ming your variables; 您应该适当地对变量进行调Dim otherwise you're attempting to use string variables as numerics: 否则,您尝试将字符串变量用作数字:

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

You're getting an error because InputBox returns strings, and you're trying to multiply strings together here: 由于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é)) . 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é))

Try declaring your French variables as integers/floating point to see if that helps. 尝试将法语变量声明为整数/浮点数,以查看是否有帮助。 More info 更多信息

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM