2017-09-25 128 views
1

嗨我想在VBA中使用VLookUp功能。 它配备了错误,“无法获取WorksheetFunction类的VLOOKUP财产” 它正试图从一个叫做2017年9月13日VBA VLookUp不起作用

Sub VLookUp() 

Dim i As Integer 

Dim k As Integer 

For i = 1 To 10 

ThisWorksheet.Cells(1 + i, 11) = WorksheetFunction.VLookUp(Cells(1 + i, 2), Worksheets("13.09.2017").Range("B2:K11"), 10, False) 

Next 

End Sub 

enter image description here 我希望片取数据,你可以帮我

+0

在VBA中没有'ThisWorksheet' – FunThomas

回答

0

ThisWorksheet不是VBA对象库的一部分。你可能需要ThisWorksbook

这是如何做到这一点,如果你想使用ActiveSheet(这不是adviseable,但它的工作原理):

Sub VLookUp() 

    Dim i As Integer 
    Dim k As Integer 

    With ThisWorkbook.ActiveSheet 
     For i = 1 To 10 
      .Cells(1 + i, 11) = WorksheetFunction.VLookUp(.Cells(1 + i, 2), _ 
       Worksheets("13.09.2017").Range("B2:K11"), 10, False) 
     Next 
    End with 

End Sub 
0

除了ThisWorksheet问题,你的代码将打破第一vlookup在范围内找不到值的实例。如果这是您将运行的唯一代码,则添加On Error Resume Next语句以避免错误。

Sub VLookUp() 

    Dim i As Integer 
    Dim k As Integer 
    On Error Resume Next 
    With ActiveSheet 
    For i = 1 To 10 
     .Cells(1 + i, 11) = WorksheetFunction.VLookUp(.Cells(1 + i, 2), _ 
      Worksheets("13.09.2017").Range("B2:K11"), 10, False) 
    Next 
    End With 
End Sub