2015-03-04 3 views
0

Я пытаюсь создать простую инструкцию if. Этот оператор if должен перейти к инструкции else, когда значение не удовлетворяет иначе, если, но вместо этого excel дает мне ошибку 13 mismach error.VBA if statement ошибка 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) является «не применимо для СКИДКА». Кто-нибудь знает, как я могу это решить?

Заранее спасибо.

ответ

1

Вы объявляете discountplaceholder как String, но тогда вы назначаете ему значение типа Double. Либо объявите discountplaceholder как Double, либо назначьте ему String. discountplaceholder = "0.1"

+0

Спасибо - проблема решена –

1

Declare 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