首页 > 解决方案 > 仅当 lookup_value 包含值时,工作簿之间 VLOOKUP 的 Excel VBA 宏

问题描述

我是vba的新手,所以请原谅我的菜鸟错误。

我假设用户已打开包含要查找的值的工作簿(在本例中为配对连接器)。我想提示他们打开要为其添加包含匹配连接器的列的工作簿。我在下面的代码中遇到的最大问题是,即使该行一直是空白到电子表格的限制(1,048,576 行!),它也会插入 vlookup。如果该行在 E 列中包含一个值,我只想添加 vlookup。

我还想让 vlookup 中的工作表不被硬编码到特定的工作表中。我尝试创建变量来完成此操作,但我找不到在 vlookup 中使用它们的语法。

提前致谢!

Sub Mate_OPEN_WKBOOK()

Dim xFileName As Variant
Dim xSourceSh As Worksheet
Dim xSourceWb As Workbook
Dim ws As Worksheet

MsgBox "Please open the workbook which you want to add mates to"
xFileName = Application.GetOpenFilename("Excel Files (*.xl*), *.xls", 1, "Open the workbook")
If xFileName = False Then Exit Sub
Set xSourceWb = Workbooks.Open(xFileName)
Set xSourceSh = xSourceWb.Worksheets.Item(1)
Set ws = ThisWorkbook.Sheets("List")

With xSourceSh
    Range("F:F").Formula = "=VLOOKUP('Lines'!B:B,'[Connector Mates SEARCH.XLS]List'!A:F,6,FALSE)"
    Range("G:G").Formula = "=VLOOKUP('Lines'!B:B,'[Connector Mates SEARCH.XLS]List'!A:F,4,FALSE)"

End Sub

标签: excelvba

解决方案


推荐阅读