首页 > 解决方案 > 如果满足某些条件,VBA 宏将列与外部单元格相乘

问题描述

请帮我解谜。假设我有 2 列:一列带有货币符号(美元、英镑、欧元),第二列带有不同的金额。

我需要的是通过将英镑和欧元与存储在其他 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 方面不是很有经验,这是偶然出现的。

非常感谢您的帮助。

标签: vbaexcel

解决方案


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

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

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

在此处输入图像描述

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

IFERROR(VLOOKUP(E3,A:B,2,0)*F3,"货币不在数据库中")


推荐阅读