[Excel VBA]从单元格获取指定价格

[Excel VBA]从单元格获取指定价格,vba,excel,Vba,Excel,出于某些原因,我想计算一个价格与一件物品的重量相比是多少 我在excel中创建了两列,我真正想要的是,如果我在A1中输入磅的数量,对于e.x.100,输出需要是150美元,在B1中。我尝试了一些简单的VBA代码。它可以工作,但价格会随着时间的推移而变化 在C列(磅)和D列(价格),我已经写下了磅和价格(在第2页)。 对于e.x 我有以下代码: Private Sub CommandButton1_Click() Dim kilo As Integer, result As String kil

出于某些原因,我想计算一个价格与一件物品的重量相比是多少

我在excel中创建了两列,我真正想要的是,如果我在A1中输入磅的数量,对于e.x.100,输出需要是150美元,在B1中。我尝试了一些简单的VBA代码。它可以工作,但价格会随着时间的推移而变化

在C列(磅)和D列(价格),我已经写下了磅和价格(在第2页)。 对于e.x

我有以下代码:

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磅。在40000磅/重量的基础上,每500磅/公斤有xxx的价格

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

有人有主意吗?我想要得到单元格,所以如果权重在200到300之间,输出应该是450欧元,-单元格(B4)


非常感谢。

我不太清楚您的数据结构,但以下内容将帮助您朝着正确的方向前进:

在第2页(C列和D列)中列出LBS |价格,确保列表按升序排序

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

您可以找到
VLOOKUP

注意,如果没有进一步的工作,这将无法处理“Max”。例如,您可以将其用作第二个公式的输入,例如:

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

我不太清楚什么是最高价格,但您可以使用下面的公式来计算每个“磅”范围的
价格系数

然后乘以
PriceFactor*150
,得到
结果

代码

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

您实际上是在查看权重到价格的映射(有点像您的
If
语句),或者是将权重转换为价格的算法,或者是两者的组合。我不知道有多少人会喜欢尝试构建这个算法,但有些人可能会,如果他们这样做,他们会想要完整的权重-价格值列表-也许现在就编辑你的帖子,将其包括在内。目前这个算法看起来是
weight/100*150
,但问题是:300磅后这个算法会成立吗。
PriceFactor = WorksheetFunction.RoundUp((Kilo / 100), 0)
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