VBA if语句错配错误

VBA if statement mismach error

我正在尝试创建一个简单的 if 语句。当值不满足 else if 时,这个 if 语句应该移动到 else 语句,而是 excel 给我一个错误 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 则为该值)是 "NOT APPLICABLE FOR DISCOUNT"。有谁知道我该如何解决这个问题?

提前致谢。

您将 discountplaceholder 声明为 String,但随后您将 Double 类型的值分配给它。将 discountplaceholder 声明为 Double,或为其分配 Stringdiscountplaceholder = "0.1"

Discounterplaceholder 声明为 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