VBA如果陈述mismach错误

我正在尝试创build一个简单的if语句。 这if语句应该移动到else语句当值不满足,否则如果,而是擅长给我一个错误13 mismach错误。

这是我的代码:

Sub CALULATE() Dim postage As String Dim discountplaceholder As String discount = Range("d10").Value If discount = 0.1 Then MsgBox "hello Bill" discountplaceholder = 0.1 ElseIf discount = 0.05 Then MsgBox "hello BOB" discountplaceholder = 0.05 Else MsgBox "hello dan" discountplaceholder = 0 End If End Sub 

第三个单元格值(它不是0.1或0.05)是“不适用于折扣”。 有谁知道我可以如何解决这个问题?

提前致谢。

您正在将discountplaceholder声明为一个String ,但是您将为其分配一个Doubletypes的值。 要么将discountplaceholder声明为Double,要么给它分配一个Stringdiscountplaceholder = "0.1"

Discounterplaceholder声明为Double或者在为其分配double值以将double转换为literal时使用""

 Dim discountplaceholder As Double 

要么

 Sub CALULATE() Dim postage As String Dim discountplaceholder As String discount = Range("d10").Value If discount = "0.1" Then MsgBox "hello Bill" discountplaceholder = "0.1" ElseIf discount = "0.05" Then MsgBox "hello BOB" discountplaceholder = "0.05" Else MsgBox "hello dan" discountplaceholder = "0" End If End Sub