2015-05-13 98 views
0

尋找Vlookup直到最後一行。有沒有辦法做到不給範圍?它可以做到最後一排。在VBA中沒有範圍的Vlookup

Do While IsEmpty(Cells(i, Name)) = False 
     Str = Cells(i, Name) 

     ws2.Select 

     On Error Resume Next 
     Corp = Application.WorksheetFunction.VLookup(Str, ws2.Range("G2:S3000"), 4, False) 
     result = Application.WorksheetFunction.VLookup(Str, ws2.Range("G2:S3000"), 13, False) 
     'Band = Application.WorksheetFunction.VLookup(Str, ws2.Range("G2:S2500"), 7, False) 

     If (Err <> 0) Then 
     Else 
      ws1.Select 
      If (result <> 0) Then 
       Cells(i, 10) = result 
      End If 
      Cells(i, 9) = Corp 
     End If 

     i = i + 1 
     ws1.Select 
    Loop 
End Sub 

回答

0

如果您想要使用的範圍內有一個單元格(如您的示例中的G2)可以使用Range(「G2」)。CurrentRegion。這將爲您提供該單元所屬的完整範圍。 這個工作對我來說:

Public Sub GetLookupValue() 
    Dim rng As Range 
    Dim str As String 
    str = "c" 
    Set rng = Blad1.Range("G2").CurrentRegion 
    Debug.Print Application.WorksheetFunction.VLookup(str, rng, 2, False) 
    Set rng = Nothing 
End Sub 
+0

修改了範圍(G2 「)。它不工作 – Butterfly

+0

上的錯誤繼續下一步 公司= Application.WorksheetFunction.VLookup(力量,ws2.Range(」 G2" ) ,4,False) result = Application.WorksheetFunction.VLookup(Str,ws2.Range(「G2」),13,False) – Butterfly

+0

想要得到一個答案嗎?有沒有辦法看到這一行的結束代碼 – Butterfly