编译错误 - 需要对象

时间:2014-10-22 06:46:26

标签: vba object compilation required

我在代码中找不到任何错误,但是“需要对象”错误不断出现。 有人可以帮忙吗我一直在这,试图修复它半小时,我仍然无法找到问题。任何帮助,将不胜感激。 谢谢!

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    

1 个答案:

答案 0 :(得分:0)

我可以看到您的代码存在一些问题: 1.您正在使用'Set'初始化strCost,strFixedCost& strResourceCost不是必需的。只需写下:

strFixedCost = 140
  1. 此外,您的第一个IF条件非常混乱。我想你正在检查cResources变量中是否存在值(你没有提到你获得cResources& tQuantity值的位置)。在这种情况下,您可以使用If Len(cResources) > 0 Then

  2. 当您将字符串与整数组合时,您的第一个msgbox会出现类型不匹配错误。

    MsgBox“价格是”& “$”+ strCost,Buttons:= vbOKOnly,Title:=“Cost”

  3. 相反,您可以使用以下代码将strCost转换为字符串:

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