VLookUp无法正常工作 - 无法分配属性

问题描述 投票:0回答:1

我的问题是,当使用VlookUp我得到错误:

无法分配WorksheetFunction-Object的VLookup-Property

        ' LookUp missing Data
        Dim lookupRange As Range
        Set lookupRange = Sheets("Kundenlisten HLK 2018").Range("A1:Y10354")

        ' Fill in Companyname
        Dim tmp As String
        tmp = Values(0)
        tmp = TrueTrim(tmp)
        testing.Cells(8, counter) = Application.WorksheetFunction.VLookup(tmp, lookupWS.Range("A2:Y10354"), 2, False)

        Values = None
        counter = counter + 1

lookupWS是工作表的名称您可以看到我尝试查找的表填充了从A到Y的值。第一列是我试图查找的键,但随后出现上述错误。 tmp变量是一个具有唯一ID的String,用于查找缺失值,而“2”应该是Range的第二列中的公司名称。

我查看了文档,但是类型和一切都很好,我甚至在调试时检查过。

testing.Cells(8,counter)也不能成为问题的根源,因为我之前正在使用它

testing.Cells(28, counter) = Left(mail.ReceivedTime, 10)

它的工作原理

excel vba excel-vba vlookup
1个回答
4
投票

如果没有任何数据,很难知道问题是什么,但这里可以帮助您找到正确的方向。

在VBA中使用FindOffset比使用WorksheetFunction.Vlookup更好

像这样的东西给你完全相同的结果,但你有更多的控制:

Sub Test()
    Dim valueFound As Range

    Set valueFound = lookupWS.Range("A2:A10354").Find(What:="Something", lookat:=xlWhole) 'xlWhole is equivalent to FALSE in VLOOKUP
    If valueFound Is Nothing Then
        MsgBox "Nothing found"
    Else
        MsgBox valueFound.Offset(0, 1) 'offsetting by 1 is equivalent to using 2 in a VLOOKUP
    End If
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.