刚开始学习VBA
我想将产品价格乘以货币值以获得新价格。
htop
这是到目前为止我尝试过的代码。我不断收到对象未定义的错误。我该如何解决?
No Name Quantity Price Product Currency OrderID Currency $
1 Tim 5 5 A HKD RX12 HKD 1
2 Alan 6 5 A HKD PR22 USD 7.8
3 Alan 2 6 B USD PR22 CAN 6
4 Bob 3 5 A HKD ED45
5 Bob 8 8 C CAN ED45
6 Tim 10 6 B USD AS63
7 Rose 12 8 C CAN LM36
8 Cathy 15 6 B USD JI48
9 Rose 2 5 A HKD HG54
10 Tim 8 6 B USD VB87
答案 0 :(得分:0)
如果数据如下表所示
您可以使用L列中的简单公式来做到这一点
NetTopologySuite.Geometries.Point ReferenceColor = ...
double MaximumVariance = ...
context.Point.Select(m => new {
ID = m.ID,
Name = m.Name,
...
ColorVariance = m.Color.Distance(ReferenceColor),
})
.Where(m => m.ColorVariance < MaximumVariance && ...)
.OrderBy(m => m.ColorVariance)
.ThenBy(...)
它使用MATCH function在货币列表(第I列)中找到货币(第F列)并返回其行号。并将其与INDEX function组合以返回该匹配行的货币因子(J列),最后将其与价格(D列)相乘。
答案 1 :(得分:0)
尝试一下。您最大的问题是如何声明变量。另外,P = 1 + i
可以帮助您避免在第一个单元格中运行无限循环。希望这会有所帮助!
Sub NP()
Dim NP As Long
Dim i As Long
Dim P As Long
Dim curr As String
For i = 2 To 10
P = Cells(i, 4)
curr = Cells(i, 6)
If curr = "HKD" Then
NP = Range("J2").Value * P
ElseIf curr = "USD" Then
NP = Range("J3").Value * P
Else
NP = Range("J4").Value * P
End If
P = 1 + i
Next i
End Sub