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

时间:2017-08-25 01:00:20

标签: excel vba excel-vba

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

这是我到目前为止所写的内容,并且我一直收到错误消息

  

Object不支持此属性或方法

并无法弄清楚原因。谁能提供输入?谢谢!

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

1 个答案:

答案 0 :(得分:2)

我猜这是你要做的事情,即迭代一张表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