2014-10-22 102 views
-2

我在我的代碼中找不到任何錯誤,但是「對象需要」錯誤不斷出現。 有人可以請幫忙。我一直在這,試圖修復它半小時,我仍然無法找到問題。任何幫助,將不勝感激。 謝謝!編譯錯誤 - 需要的對象

Private Sub cmdCost_Click() 

Dim strCost As Integer 
Dim strFixedCost As Integer 
Dim strResourceCost As Integer 
Dim wksResources As Worksheet 

Set wksResources = Application.Workbooks(1).Worksheets("Resources") 
Set strFixedCost = 140 


If cResources.Text = "" = False Then 
If Val(tQuantity.Text) > 0 Then 

wksResources.Select 
wksResources.Range("B2").Select 

Do Until ActiveCell.Value = cResources.Text 
ActiveCell.Offset(1, 0).Select 
Loop 

Set strResourceCost = ActiveCell.Offset(0, 3).Value 

Set strCost = strFixedCost + (Val(strResourceCost) * tQuantity) 

MsgBox " The price is" & " $" + strCost, Buttons:=vbOKOnly, Title:="Cost" 

Else 
MsgBox " You have not chosen a quantity.", Buttons:=vbOKOnly, Title:="Cost" 
End If 
Else 


MsgBox " You have not chosen a resource.", Buttons:=vbOKOnly, Title:="Cost" 
End If 


End Sub  
+0

哪一行會拋出錯誤? – 2014-10-22 07:15:15

回答

0

我可以看到一些問題與您的代碼: 1.您正在使用「設置」來初始化strCost,不要求strFixedCost & strResourceCost。只要寫:

strFixedCost = 140 
  • 而且,你的第一個IF條件是相當混亂。我想你正在檢查cResources變量中是否存在值(你沒有提到你獲取cResources & tQuantity值的位置)。在這種情況下,你可以使用If Len(cResources) > 0 Then

  • 你的第一個msgbox會給你一個類型不匹配的錯誤,因爲你將字符串與一個整數結合起來。

    MSGBOX 「價格」 & 「$」 + strCost,按鈕:= vbOKOnly,標題:= 「成本」

  • 相反,你可以使用下面的代碼來strCost轉換爲字符串:

    MsgBox " The price is" + " $" + CStr(strCost), Buttons:=vbOKOnly, Title:="Cost" 
    
    +0

    感謝您的幫助!我現在還有一個錯誤。類型不匹配錯誤。但是它在這個代碼中。 strCost = strFixedCost +((strResourceCost)* tQuantity) 其中strCost,strFixedCost和strResourceCost是整數,並且tQuantity是從我的用戶窗體的文本框的值。 – 2014-10-22 08:12:49

    +0

    嘗試使用Cint(tQuantity)函數並將其存儲在一個整數中。 – rusk 2014-10-22 10:37:17