Excel VBA-通过另一个单元格更改单元格值?

时间:2018-10-10 21:48:25

标签: excel vba cell

所以VBA对我来说是全新的。我来自C#背景。 当前正在创建一个订单,我可以在其中输入一个对象所需的总金额,然后在另一个单元格中计算价格。

但是我还希望价格根据该对象的金额阈值进行更改。

例如0-100的价格为2.50英镑,因此我希望答案在该范围内的任何地方都乘以2.50。同时,如果金额超过100并变为120,我希望对象价格现在反映2.30英镑,然后将120乘以2.30英镑。

我注意到在线上有一些教程,但是它们并没有完全解释我如何能够实现上述目标。想知道是否有人可以指出我正确的方向?

1 个答案:

答案 0 :(得分:1)

非VBA解决方案

如果您使用价格的最低和最高阈值构建表,则可以简单地使用VLOOKUP并返回近似匹配项。

在照片中,Column CColumn D中显示的方程式的输出

enter image description here


VBA解决方案

您还可以使用简单的UDF。将代码粘贴到Module内,然后可以像其他任何方程式一样从单元格中调用函数PRICEINDX。您可以手动输入PRICEINDX(164)之类的值,也可以选择一个具有要测试的值的单元格,例如PRICEINDX(A1)

您还可以使用Select Case

轻松设置更复杂的阈值
Option Explicit

Public Function PRICEINDX(Target As Double) As Double

Dim ans As Double

Select Case Target
    Case 0 To 100
        ans = 2.5
    Case 101 To 200
        ans = 2.3
    Case 201 To 300
        ans = 2.1
    Case Is > 300
        ans = 2
End Select

PRICEINDX = ans

End Function