2014-06-19 5 views
0

VLOOKUP 함수를 VBA을 통해 내 Excel 워크 시트에 정확히 통합하는 방법을 알고 싶습니다. 나는 세포에 직접 입력 할 때 VLOOKUP 기능에 완전히 만족하지만 VBA를 완전히 처음 접했습니다.Excel - VLOOKUP via VBA

약간의 정보 :

  • 나는 데이터 ~ 5500 개 행이;
  • 이름이 지정된 범위가 여러 개인 경우 (예 : catNo, catNoRange)
  • catNoRange에 대해 catNo을 확인하고 여섯 번째 (6 번째) 열의 값을 catNoRange에 반환하려면 VBA를 사용하고 싶습니다.

나는 또한 한번 가지고 어떻게 결과를 표시하는지 알고 싶다. 이상적으로는 셀 J4 (및 해당 셀을 J5500까지)에 표시하고 싶습니다.

어떻게하면됩니까?

추가 정보 : 내가 특정 세포 여부를 확인하는 스크립트를 작성했기 때문에 내가 VBA를 사용하려면 : 난 그냥 이것을 달성하기 위해 정기적 VLOOKUP를 사용하지 않는 이유를 궁금해의 사람들을 위해

가 비어 있고 둘 중 하나 이상이 채워지면 VLOOKUP이 실행되어 기본 검색 critera에 대한 채워진 셀의 값을 취합니다.

코드 업데이트 :

조언에 따라, 나는 VLOOKUP 대신 Find 기능을 사용하려고 시도하는 선택했다. 작동하지 않습니다.

Sub findCode() 

    Result = WorksheetFunction.Find("ABI0010P", "5012616173004", "33787") 
    Range("J4").Value 

End Sub 
+0

같은 것을 갖고 싶어 찾기 기능의 경우 : 여기에 내가 가진 무엇인가? 훨씬 빠르고 VBA 친화적 인 : http://msdn.microsoft.com/en-us/library/office/ff839746(v=office.15).aspx – bmgh1985

+0

나는 그것을 의심 ("추가 정보 :"절을 참조하십시오. 추가됨). 물론, 방법을 설명 할 수 없다면. – MusTheDataGuy

+1

_ VBA에서 조회를 수행하려면 많은 사람들이 코드에서 Vlookup WorksheetFunction을 사용하는 것으로 보입니다. 이 작업을 수행 할 수는 있지만 데이터를 찾는 속도가 느립니다. 이것은 우리가 VBA에있을 때 매우 빠른 Find Method._ (Excel의 다양한 유형의 조회 기능에 대한 OzGrid 페이지 : http://www.ozgrid.com/News/LookUpMatchIndexVBAFind.htm)를 사용할 수 있기 때문입니다. – bmgh1985

답변

0

당신이`Find`을 사용할 수 없습니다이

Dim ws As Worksheet 
Set ws = Worksheets(2) 
Rowz = ws.Cells(rows.Count, 1).End(xlUp).Row 
k = 2 
searchvalue= ws.Cells(k, 2) 
Set SEARCHRANGE= ws.Range("A2:A" & Rowz) 
Set Findx = SEARCHRANGE.find(searchvalue, LookIn:=xlValues) 
If Not Findx Is Nothing Then ws.Cells(k, 4) = "what ever you want"