繁体   English   中英

[Excel-VBA]从单元格获取标价

[英][Excel-VBA]Getting the specif price from cell

由于某些原因,我想计算与物品重量相比的价格。

我在excel中创建了两列,我真正想要的是,如果我在A1中输入了LBS的数量(例如100),则在B1中的输出需要为$ 150-。 我已经尝试了一些简单的VBA代码。 IT有效,但是价格会随着时间变化。

在C栏(LBS)和D栏(价格),我写下了磅和价格(在表2中)。 对于前

LBS Price
100 150
200 300
300 450

我有以下代码:

Private Sub CommandButton1_Click()
Dim kilo As Integer, result As String

kilo = Range("A1").Value

Select Case kilo
     Case Is >= 300
         result = "450 euro"
     Case Is >= 200
         result = "300 euro"
     Case Is >= 1
         result = "150 euro"
     Case Else
         result = "nvt"
End Select

Range("B1").Value = result

End Sub

问题是列表太长,达到40000 LBS。 高于40.000 LBS /重量时,每500磅/公斤xxx的价格

公式是这样的,介于100磅至199磅之间,价格为300欧元,-介于200磅至299磅之间,价格为450欧元,-

有人有主意吗? 我想得到一个单元格,所以如果重量在200到300之间,则输出应为€450,-单元格(B4)

非常感谢你。

我对您的数据结构不太清楚,但以下内容应有助于您朝正确的方向前进:

与您的LBS列表| 工作表2中的价格(C和D列),确保列表按升序排序...

=VLOOKUP(A1,Sheet2!C:D,2,True)

此公式从“ Sheet2!C:D ”范围第一列的单元格A1中“查找”值。 如果找不到匹配项,则使用True作为最终参数,我们将(有序)列表视为一组阈值...满足或超过的最后一个阈值将被视为“匹配”行。 第三个参数2 ,意味着我们在Sheet2!C:D范围内检索第二个参数。

您可以在此处找到VLOOKUP的Office支持页面

请注意,如果不做进一步的工作,这将无法处理您的“最高”费用。 例如,您可以将其用作第二个公式的输入,例如:

=If([output] >= [Max], [Per LB Calculation], [output])

我不清楚最高价格是多少,但是您可以使用以下公式计算每个“ LBS”范围的PriceFactor

PriceFactor = WorksheetFunction.RoundUp((Kilo / 100), 0)

然后将PriceFactor * 150乘以得到Result

Option Explicit

Private Sub CommandButton1_Click()

Dim Kilo As Long, Result As Long
Dim PriceFactor As Double

Kilo = Range("A1").Value

PriceFactor = WorksheetFunction.RoundUp((Kilo / 100), 0)
Result = PriceFactor * 150

Range("B1").Value = Result

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM