VBA VLookup单元在不同的工作表上

我想写一个代码,检查两个不同的工作表上的两个单元格是否相同。 而且,如果它们是相同的,则使用VLOOKUP来查找这些单元格(在不同列中)的指定值之间的差异,

这是我到目前为止所写的,我不断收到错误信息

对象不支持这个属性或方法

并不知道为什么。 任何人都可以提供意见 谢谢!

Sub testing() Product = Range("A2:A506") Set myrange = Worksheets("open_prices").Range("A2:D506") Set myrange2 = Worksheets("close_prices").Range("A2:B506") Dim popen As Integer Dim pclose As Integer Dim ws As Worksheet For Each Cell In Workbooks("TDO VBA Test.xlsx") If Worksheets("open_prices").Range("A2:A506") = Worksheets("close_prices").Range("A2:A506") Then popen = WorksheetFunction.VLookup(Product, myrange, 4, False) pclose = WorksheetFunction.VLookup(Product, myrange2, 2, False) result = popen - pclose End If Next Cell End Sub 

我猜测这就是你正在做的事情,即迭代一个工作表的A2:A506中的每个单元格,看看这个值是否在另一个工作表中,如果是,则进行计算。

 Sub testing() Dim popen As Integer Dim pclose As Integer Dim result As Integer ' Are you sure these are integers? Usually prices will be Double Dim VLookupResult As Variant Dim cel As Range For Each cel In Worksheets("open_prices").Range("A2:A506").Cells popen = cel.Offset(0, 3).Value VLookupResult = Application.VLookup(cel.Value, Worksheets("close_prices").Range("A2:B506"), 2, False) If Not IsError(VLookupResult) Then pclose = VLookupResult result = popen - pclose ' You will need to decide what to do with this "result" now ' that it has been calculated End If Next cel End Sub