统计211

标题: EXCEL应用——自定义函数 [打印本页]

作者: mxbj    时间: 2013-9-3 16:56
标题: EXCEL应用——自定义函数
来源:新浪博客  来源:http://www.itongji.cn/article/0RUF2011.html

      朋友在物流公司做会计,每天都有上千条份快件的运费需要计算汇总,最近总是抱怨自己手头的活多了,连去农场“偷菜”的时间都没有。的确,每天拿着报价单重复同样的事情,稍不留神还有可能算错,月底对账时数目不对还得扣奖金,可怜啊!最后我这个朋友不得不帮她想办法,于是就有了下面的用户自定义函数:函数设置了3个参数,目的地area,物品名称type1,和物品重量weight,最后根据目的地、物品名称、重量等因素来求快件的收费。这里忽略重量为负的情况,主要考虑目的地是否有输入错误而导致无法计算运费的情况,如果目的地不在公司所在配送范围内,则弹出对话框:请检查目的地是否输入正确,点击确定在返回目的地,点击取消则返回错误,简要代码如下:

Function price1(area, type1, weight)
     If type1 = "doc" Then
          Select Case area
             Case Is = "LHR"
                If weight <= 0.5 Then
                price1 = 90
                Else
                price1 = 90 + Round((weight - 0.5), 1) * 2 * 30
                End If
             Case Is = "DXB"
                If weight <= 0.5 Then
                price1 = 45
                Else
                price1 = 45 + Round((weight - 0.5), 1) * 2 * 45
                End If
             Case Is = "CDG"
                If weight <= 0.5 Then
                price1 = 60
                Else
                price1 = 90 + Round((weight - 0.5), 1) * 2 * 25
                End If
             Case Else
               price1 = MsgBox("请检查目的地是否输入正确", vbOKCancel)

If price1 = vbOK Then

price1 = area

Else

price1 = "错误"

End If
            End Select

Else
          Select Case area
             Case Is = "LHR"
               If weight <= 0.5 Then
               price1 = 125
               Else
               price1 = 125 + Round((weight - 0.5), 1) * 2 * 30
               End If
             Case Is = "DXB"
               If weight <= 0.5 Then
               price1 = 60
               Else
               price1 = 60 + Round((weight - 0.5), 1) * 2 * 45
               End If
             Case Is = "CDG"
               If weight <= 0.5 Then
               price1 = 90
               Else
               price1 = 90 + Round((weight - 0.5), 1) * 2 * 25
               End If
             Case Else
               price1 = msgbox("请检查目的地是否输入正确",vbokcancel)

if price=vbok then

price1=area

else

price1="错误"

end if
            End Select
     End If
End Function

下面看看效果如何:
[attach]2250[/attach]

PS:看不见图片动态效果的点击查看原图,另外EXCEL和CX结合起来用往往能起到意想不到的效果,有关CX方面的应用可以去小蚊子乐园和本博友情链接dataliliy去看看,前不久,有了首本CX中文书。




欢迎光临 统计211 (http://www.tj211.com/) Powered by Discuz! X3.2