2016-03-01 42 views
0

我正在爲我的編程類解決問題,並想知道我是否可以得到一些幫助。下面的代碼應該爲特定型號(AX1和SD2)折扣10%。所有其他投入都將打折5%。與代碼現在會發生什麼只是一個平坦的消息框與原始輸入的價格。VBA IF然後使用字符串變量的語句

Private Sub DiscountCalc_Click() 

Dim strModelNum As String 
Dim curOrigPrice As Currency 
Dim sngRate As Long 
Dim curDiscount As Long 
Dim curNewPrice As Currency 


strModelNum = InputBox("Enter desired model number", "Price Lookup") 
strModelNum = UCase(strModelNum) 

curOrigPrice = InputBox("Enter the original Price", "Price Lookup") 
sngRate = 0.1 
curDiscount = 0.05 


If strModelNum = "AX1" Then 
    curNewPrice = curOrigPrice - (curOrigPrice * sngRate) 
Else If strModelNum = "SD2" Then 
    curNewPrice = curOrigPrice - (curOrigPrice * sngRate) 
Else 
    curNewPrice = curOrigPrice - (curOrigPrice * curDiscount) 
End If 

    MsgBox curNewPrice 

End Sub 
+0

看來,你有一個結束如果過剩。這是故意的還是什麼?我已經爲你編輯了一些行。謝謝! – 2016-03-01 08:59:13

+0

額外endif是沒有經驗的結果。謝謝! –

回答

1

嘗試:

If strModelNum = "AX1" Or strModelNum = "SD2" Then 
    curNewPrice = curOrigPrice - (curOrigPrice * sngRate) 
Else 
    curNewPrice = curOrigPrice - (curOrigPrice * curDiscount) 
End If 
+1

還需要更改兩個多頭雙打。長期將其四舍​​五入到0 –

+0

良好的捕獲 - 錯過了這一點 –

1

試試這個代碼。

您需要將Long改爲Double。你也可以簡化你的IF語句。

Private Sub DiscountCalc_Click() 

Dim strModelNum As String 
Dim curOrigPrice As Double 
Dim sngRate As Double 
Dim curDiscount As Double 
Dim curNewPrice As Double 


strModelNum = InputBox("Enter desired model number", "Price Lookup") 
strModelNum = UCase(strModelNum) 

curOrigPrice = InputBox("Enter the original Price", "Price Lookup") 
sngRate = 0.1 
curDiscount = 0.05 


If strModelNum = "AX1" Or strModelNum = "SD2" Then 
    curNewPrice = curOrigPrice - (curOrigPrice * sngRate) 
Else 
    curNewPrice = curOrigPrice - (curOrigPrice * curDiscount) 
End If 

    MsgBox curNewPrice 

End Sub 
1

讓我們來看看這裏:

Dim strModelNum As String 
Dim curOrigPrice As Currency 
Dim sngRate As Long 
Dim curDiscount As Long 
Dim curNewPrice As Currency 

利用渴望的折扣率,我認爲你是在自找麻煩。

Dim strModelNum As String 
Dim curOrigPrice As Currency 
Dim sngRate As Double 
Dim curDiscount As Double 
Dim curNewPrice As Currency 
+0

從長變爲雙是它所需要的。謝謝。 –