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,或为其分配 String
。 discountplaceholder = "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
我正在尝试创建一个简单的 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,或为其分配 String
。 discountplaceholder = "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