Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将工作簿中单元格的值与关闭工作簿中单元格的值进行比较_Excel_Excel 2007_Match_Vba - Fatal编程技术网

Excel 将工作簿中单元格的值与关闭工作簿中单元格的值进行比较

Excel 将工作簿中单元格的值与关闭工作簿中单元格的值进行比较,excel,excel-2007,match,vba,Excel,Excel 2007,Match,Vba,我在工作簿a中有一个值列表,需要在工作簿B中找到,该工作簿已关闭 我试图实现的伪代码: For each entry x in Workbook A Search through the column in Workbook B for entry x Copy that value from Workbook B along with the value cell next to it Next entry 我尝试将单元格的值存储为变量,但我不确定如何增加单元格值,以便继

我在工作簿a中有一个值列表,需要在工作簿B中找到,该工作簿已关闭

我试图实现的伪代码:

For each entry x in Workbook A
     Search through the column in Workbook B for entry x
     Copy that value from Workbook B along with the value cell next to it
Next entry
我尝试将单元格的值存储为变量,但我不确定如何增加单元格值,以便继续向下移动列表

我尝试过使用Match函数,但不确定如何正确比较这些值

这方面的任何帮助都会很好

谢谢,
Ian

您也可以尝试使用Vlookup:

Sub example()
Dim ans As Variant
Dim WB_B As Workbook
Dim TWB As Workbook ' your workbook A
Dim WB_B_rng As Range
Set TWB = ThisWorkbook
Set WB_B = Workbooks.Open("your workbook B's full path")
Set WB_B_rng = WB_B.Sheets("workbookB's sheetname").Range("data table's range")

TWB.Activate
Sheets("workbookA's sheetname").Range("A1").Select ' or where your record's start located
Do While Not IsEmpty(ActiveCell)

ans = Application.WorksheetFunction.VLookup(ActiveCell.Value, WB_B_rng, 2, 0)
ActiveCell.Offset(0, 1).Value = ans
ActiveCell.Offset(1, 0).Activate 'goes down to the next cell until it's empty
Loop

WB_B.close
End Sub

这似乎是我正在寻找的,但是,当我从Excel运行代码时,抛出以下错误:
运行时错误“1004”:无法获取WorksheetFunction类的VLookup属性
尝试改用Application.VLookup:ans=Application.VLookup(ActiveCell.Value,WB_B_rng,2,0),修复了该问题。但是,代码现在运行,列B(ActiveCell.Offset(0,1).Value=ans)中的所有引用都是无效引用(“#REF!”)。我不知道如何解决这个问题。我在B列中用作值的工作簿B,这是我在WB_B_范围中引用的工作簿B。假设匹配值位于A列,查找值位于工作簿B的B列,请检查WB_B_rng是否同时包含A列和B列。例如,设置WB_B_rng=WB_B.Sheets(“Sheet1”)。范围($A1:$B100)我明白了。我不明白VLookUp是否有效。我只是将范围限制在很窄的范围内,然后尝试返回超出范围的值。再次感谢您的帮助!