特定电池的运费价格

时间:2015-12-07 11:19:59

标签: excel vba

我想将我们的运费价格列入工作簿1,Cell B14。

运费价格因运费重量而异:

  • 如果运费重量低于45公斤,运费价格为55.00港元
  • 如果重量超过45公斤,运费价格为47.00港元
  • 如果重量超过100公斤,运费价格为29,50港元

我到目前为止所列的VBA如下所示,但我得到the following error<div class="bigbrother" onmousemove="test(event)"> <div id="cursor"></div> </div>。如何使这项工作?

statement invalid outside Type block

2 个答案:

答案 0 :(得分:0)

哇,我的VBA时间很早。我认为你有两个问题,变量定义和范围。

1-定义错过了Dim的变量:

Dim Weight As Double 

2-在VBA(see here)中,您使用函数的名称作为返回值。

我认为造成麻烦的是

freightrate As Double

删除它或使用临时变量它应该可以工作。

答案 1 :(得分:0)

正如cboden所说 - 最好使用SELECT CASE 这也可以用作工作表函数 - 例如 =运费(Sheet1!B14)。 该函数返回VARIANT,以便ELSE语句可以返回错误 - 您可能希望将其更改为CVErr(xlErrNum)以显示#Num!错误 - 或者如果你想取消错误捕获,则将返回类型更改为Double 您也可以使用 CASE&gt; 300

Public Sub Test()

    Debug.Print freightrate(Range("B14").Value)

End Sub

Public Function freightrate(Weight As Double) As Variant

    Select Case Weight
        Case 45
            freightrate = 55
        Case 46 To 100
            freightrate = 47
        Case 100 To 300
            freightrate = 29.5
        Case Else
            freightrate = CVErr(xlErrValue)
    End Select


End Function