0

我的代码有问题:

代码:

Sub CPT_Click()


    Dim CPTBook, PRBook As Workbook
    Dim CPTSheet, PRSheet As Worksheet
    Dim CPTRange As Range
    Dim myResult, lookValue As String


    Set PRBook = ThisWorkbook
    Set PRSheet = PRBook.Worksheets("Implementation")
    Set CPTBook = Workbooks.Open("CPT.xlsx", ReadOnly:=True)
    Set CPTSheet = CPTBook.Worksheets(2)
    Set CPTRange = CPTSheet.Range("G4:DY300")

    lookValue = PRSheet.Range("U18").Value   'returns correct value
    myResult = Application.WorksheetFunction.VLookup(lookValue, CPTRange, 2, False)
    MsgBox myResult


End Sub

当我单击我的按钮时,我得到了著名的:“无法获取 WorksheetFunction 类的 Vlookup 属性”错误消息。

我已经尝试了所有方法,当在工作表中键入 Vlookup 函数时,我得到了正确的值 - 所以我在 CPTRange 内的 CPTSheet 中寻找的值 (lookValue)。

有什么想法吗?

提前致谢。

4

1 回答 1

0

您需要将 Address 属性的 CPTRange 的 External 属性设置为 true。我也会为此使用 Evaluate 方法:

myResult = Evaluate("VLookup(""" & lookValue & """," & CPTRange.Address(External:=True) & ",2,False)")
于 2013-08-10T20:16:19.277 回答