工作簿1中的输入值在工作簿2中找到它,并将对应的值输入到工作簿1中

时间:2019-01-31 04:28:07

标签: excel vba

我是VBA的新手,不太确定从哪里开始。我有两个单独的工作簿保存在同一文件夹中。我要寻找的是在工作簿1中填充A列时;

worksheet 1

我希望在工作簿2的C列中搜索该数字的宏。如果找到匹配项,那么我希望将工作簿2的F列中的对应值复制到工作簿1的I列中。

workbook 2

如果找不到匹配项,则将单元格留空。

如果找到多个匹配项,请使用最大的数字。 有时工作簿1也有多个页面。 用户不会打开工作簿2,它们只会填充工作簿1中的数据,并且如果A列中的数据发生更改,宏将自动运行。

enter image description here

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不确定您是否在这里需要VBA,但是我是VBA的新手。这就是我要使用的,并且我确定有人可以将其转换为VBA。作为参考,我将您的工作簿称为Book1和Book2。在Book2(您想要结果的那个)中,使用以下公式:

= IF(MAX(IF([Book1] Sheet1!$ C $ 2:$ C $ 20000 = A26,[Book1] Sheet1!$ F $ 2:$ F $ 20000))= 0,“”,(MAX (IF([[Book1] Sheet1!$ C $ 2:$ C $ 20000 = A26,[Book1] Sheet1!$ F $ 2:$ F $ 20000)))

要使其成为数组公式,请返回包含公式的单元格,按F2键,然后按CTRL + SHIFT + ENTER,它将在公式周围放上括号,使其看起来像这样:

{= IF(MAX(IF([Book1] Sheet1!$ C $ 2:$ C $ 20000 = A26,[Book1] Sheet1!$ F $ 2:$ F $ 20000))= 0,“”,( MAX(IF([Book1] Sheet1!$ C $ 2:$ C $ 20000 = A26,[Book1] Sheet1!$ F $ 2:$ F $ 20000)))))}

然后您可以向下拖动该公式或填写该公式。

注意:$ C $ 2:$ C20000和$ F2:$ F20000假定您的零件编号和价格或任何从2行开始的数字,并且少于20000行,如果更多,只需替换20000到您需要的高度。在我的老眼中,A26似乎是您键入与Sheet1列C对应的部件号的第一个单元格。