2014-01-07 5 views
0

VLOOKUP 반복 작업에 도움이되는 다음 매크로를 작성했습니다. 작동하지만 여러 셀에서 동시에 실행할 수는 없습니다.셀 선택에서 매크로 실행

매크로 시작 부분에 작성하는 코드가 있다고 생각합니다.

도움이 많이 @Makah가 제안

Sub Croisement_ZANOX_BO() 
' 
' Croisement_ZANOX_BO Macro 
' 

' 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-18]:C[-11],1,FALSE)" 
    ActiveCell.Offset(0, 1).Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-19]:C[-12],2,FALSE)" 
    ActiveCell.Offset(0, 1).Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-20]:C[-13],3,FALSE)" 
    ActiveCell.Offset(0, 1).Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-21]:C[-14],4,FALSE)" 
    Selection.NumberFormat = "dd/mm/yy;@" 
    ActiveCell.Offset(0, 1).Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-22]:C[-15],5,FALSE)" 
    Selection.NumberFormat = "dd/mm/yy;@" 
    ActiveCell.Offset(0, 1).Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-23]:C[-16],6,FALSE)" 
    ActiveCell.Offset(0, 1).Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-24]:C[-17],7,FALSE)" 
    ActiveCell.Offset(0, 1).Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC3,BO!C[-25]:C[-18],8,FALSE)" 
    Selection.NumberFormat = "# ##0,00 €" 
End Sub 
+0

'ActiveCell'은 문자 그대로 ** 활성 셀 **을 의미합니다. 당신은 무엇을하려고하고 무엇이 효과가 없습니까? –

+0

@mehow하지만 그는 'ActiveCell.Offset (0, 1) .Select'를 사용하여 셀을 변경하고 있습니다. 좋은 코드는 아니지만 ..... – Makah

+0

(매크로) (ii) 셀에 코드를 쓰거나 (iii) 복사하여 붙여 넣기 또는 자동 완성을 할 수있을 때마다 vlookup을 작성하십시오. – Makah

답변

1

당신은 .Select/ActiveCell 등의 사용을 피해야한다 ;-) 감사. INTERESTING READ

당신이 n 수식의 열 번호입니다 =VLOOKUP($C1,BO!D:XFA,N,FALSE) 말을 사용하려는 공식은 (당신의 위의 코드를 기반으로) 당신은 다음이

같은 간단한 루프를 사용 D1 말에서 그것을 넣어하려는 경우
Sub Sample() 
    Dim ws As Worksheet 
    Dim n As Long, col As Long 

    '~~> Change this to the relevant sheet 
    Set ws = ThisWorkbook.Sheets("Sheet1") 

    col = 4 '<~~ For COl D 

    With ws 
     For n = 1 To 8 
      .Cells(1, col).Formula = "=VLOOKUP($C1,BO!D:XFA," & n & ",FALSE)" 
      col = col + 1 
     Next n 
    End With 
End Sub 
+0

안녕하세요 Siddhart, 도움을 주셔서 대단히 감사드립니다. 이 사용하는 동안 오류가 발생했습니다. 사실 같은 통합 문서에 2 장이 있고 공통적으로 하나의 열이 있고 데이터를 자동으로 병합하려고합니다. 감사합니다. 워크 시트 희미한으로'code'Sub Croisement_ZANOX_BO_2() 희미한 WS N 한, COL 한 '~~> 관련 시트 설정 WS의 =의 test.Sheets이 변경 ("Zanox") COL = 4 '<~~ COL D의 경우 ws 의 경우 n = 1의 경우 8 .Cells (1, col) .Formula = "= VLOOKUP ($ C1, BO! D : XFA,"& n & FALSE) " col = col + 1 다음 n 끝으로 끝 서브 – Khazd0rf

+0

안녕하세요 Siddhart, 친절한 도움을 많이 주셔서 감사합니다! – Khazd0rf