Excel 수식을 매크로 VBA 코드로 변환하는 방법

Excel 수식을 매크로 VBA 코드로 변환하는 방법

아래를 매크로 VBA 코드로 어떻게 변환합니까? =INDEX(분류,일치(TRUE,ISNUMBER(검색(이름,O12)),0))

Sheet1에 검색해야 하는 열(O)이 있습니다. sheet2에 이름(이름 및 분류)으로 정의된 두 개의 열이 있습니다. Sheet1의 O열에 이름이 있으면 P열은 Sheet2 분류에 해당하는 값을 갖습니다.

Sheet1 열 O 우리 고객의 이름은 John Doe입니다.

Sheet2 이름 분류 John Doe Class A

Sheet1 열 P의 값은 Class A입니다.

도와주세요!

답변1

샘플 데이터를 사용할 수 없으므로 가정합니다.

  • Sheet 1O, 검색할 이름입니다 O2:O10.
  • Sheet 2Clasification & 가 있고 & 에 Names있습니다 .Named rangeA2:A10B2:B10
  • P2:P10의 범위에 있는 결과가 필요합니다 Sheet1.

이제 먼저 Excel 수식을 VBA 코드에 할당하는 방법을 제안하고 싶습니다.

Range("P2").FormulaArray = "=IFERROR(INDEX(Clasification,MATCH(TRUE,ISNUMBER(SEARCH(Names,O2)),0)),""No Found"")"

주의.FormulaArray이를 사용 하려면 배열(CSE) 수식이 필요합니다 .


하지만 Named RangeVBA 매크로와 함께 사용하는 동안 is/are를 선언해야 하므로 다음 코드를 Standard Module.

Sub Formula()

Dim Clasification As Range
Dim Names As Range


 Set Clasification = Sheets("Sheet2").Range("A2:A10")
 Set Names = Sheets("Sheet2").Range("B2:B10")


Range("P2").FormulaArray = "=IFERROR(INDEX(Clasification,MATCH(TRUE,ISNUMBER(SEARCH(Names,O2)),0)),""No Found"")"
Range("P2:P10").FillDown
End Sub

필요에 따라 코드에서 셀 참조 및 명명된 범위를 조정합니다.

관련 정보