如果满足某些条件,则VBA宏与外部单元格相乘

时间:2018-06-17 15:31:25

标签: excel vba excel-vba

请帮我解决这个谜语。 说我有2列: 一个是货币符号(美元,英镑,欧元) 第二是金额不同。

我需要的是将GBP和EUR兑换成美元,将它们与存储在其他excel文件中的F / X率相乘,如果金额是美元,则保留美元。

到目前为止,我做过类似的事情:

Dim wk As Workbook
Set wk = Workbooks.Open("....\....xlsx")
Dim sh As Worksheet
Set sh = wk.Worksheets("Sheet1") 
wk.Activate
sh.Select
If currency = "GBP" Then
    result = .Range("N:N") * sh.Range("A1")
    ElseIf currency = "EUR" Then
    result = .Range("N:N") * sh.Range("A2")
    Else currency = "USD" Then
    result = .Range("N:N") 
    End If

我想我可以通过一些循环来做到这一点,但我对VBA不是很有经验,这偶然发生在我身上。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以在没有VBA的情况下执行此操作,只需创建一个表格,其中包含与其对应的美元汇率相匹配的货币代码(美元,欧元,英镑)。从那里,您可以使用原始数据中的VLOOKUP来提取转换,并将其乘以当地货币的金额,以达到美元等值。

  

= VLOOKUP(E3,A:B,2,0)* F3

其中E3是要转换的货币,A:B是您的表格数据库(数据库),& F3是当地货币的金额。自动填充原始数据中的等式以填充所有转换。

enter image description here

您还可以将其嵌套在IFERROR中,以生成有关您数据库中尚未存储的任何货币的消息。

  

IFERROR(VLOOKUP(E3,A:B,2,0)* F3,"货币不在DB")