2017-02-01 40 views
-1

下面是我的整個代碼。我不斷收到運行時錯誤13,任何幫助將不勝感激。如何在VBA中調試運行時錯誤13?

Private Sub Button_Clear_Click() 
    Input_Wager.Text = "0" 
End Sub 

下面的段,當按下命令按鈕,如果文本框Input_Wager是空的,它顯示一個消息,我想,否則它開始計算在elseif

Private Sub Button_Submit_Click() 
    If Me.Input_Wager.Text = "" Then 
     MsgBox ("Display") 
    ElseIf Me.Input_Wager.Text <> "" Then 
     TextBox2.Text = "$" & (Me.Input_Wager * 35) 
     TextBox3.Text = "$" & (Me.Input_Wager * 17) 
     TextBox4.Text = "$" & (Me.Input_Wager * 8) 
     TextBox5.Text = "$" & (Me.Input_Wager * 11) 
     TextBox6.Text = "$" & (Me.Input_Wager * 6) 
     TextBox7.Text = "$" & (Me.Input_Wager * 5) 
     TextBox8.Text = "$" & (Me.Input_Wager * 11) 
     TextBox9.Text = "$" & (Me.Input_Wager * 17) 
     TextBox10.Text = "$" & (Me.Input_Wager * 2) 
     TextBox11.Text = "$" & (Me.Input_Wager * 2) 
     TextBox12.Text = "$" & (Me.Input_Wager * 1) 
     TextBox13.Text = "$" & (Me.Input_Wager * 1) 
     TextBox14.Text = "$" & (Me.Input_Wager * 1) 
     TextBox15.Text = "$" & (Me.Input_Wager * 1) 
     TextBox16.Text = "$" & (Me.Input_Wager * 1) 
     TextBox17.Text = "$" & (Me.Input_Wager * 1) 
    End If 
End Sub 
+0

是問題,你連接一個字符串和一個整數? –

+0

運行時錯誤13意味着[類型不匹配](https://msdn.microsoft.com/en-us/library/aa264979(v = vs.60).aspx)。所以你正在使用錯誤類型的對象。例如,你爲什麼將一個控件乘以35?你乘以數字,而不是控件。 –

+0

顯然'Input_Wager'的內容不能被隱式地解析爲一個數字。 – GSerg

回答

-1

作爲@Andrew和@Raymond說,你正在得到一個類型不匹配的錯誤,因爲你試圖用一個整數乘以一個控件/對象。看到

首先檢查是否Input_Wager的值是一個整數,而不是一個字符串 - 做到這一點不讓其接受別的不是整數 -

Private Sub Input_Wager_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Input_Wager.KeyPress 

    If Not Char.IsNumber(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) Then 
     e.KeyChar = "" 
    End If 
End Sub 

現在你知道它有一個整數值,改變你的乘法線到這 -

TextBox2.Text = "$" & (Me.Input_Wager.Text * 35) 
+0

OP正在使用VBA,並且這不是一個很好的方法來將字段限制爲數字(並且它不處理粘貼的值)。如果OP使用VB.NET,更好的方法是'Integer.TryParse'。 – GSerg