2017-12-20 4 views
0

Excel에서 다음 수식을 사용하면 효과적입니다. 이 수식은 테이블의 맨 아래로 끌어옵니다.VBA의 자동 완성 수식

=IF(OFFSET(OriginalData!$A$1,MATCH(TempTable!$A2,OriginalData!$A:$A,0)-1,2,1,1)=0,"",OFFSET(OriginalData!$A$1,MATCH(TempTable!$A2,OriginalData!$A:$A,0)-1,2,1,1))

는 지금 VBA이를 추가 할 다음과 같은 시도 :

Private Sub MatchViaEmployeeName() 

With Worksheets("TempTable") 

Set Usdrws = .Cells(.Rows.Count, 1).End(xlUp) 

.Range(.Cells(1, 1), Usdrws.Offset(, 1)).FormulaR1C1 = "=IF(OFFSET(OriginalData!R1C1,MATCH(TempTable!RC[-1],OriginalData!$A:$A,0)-1,2,1,1)=0,"""",OFFSET(OriginalData!R1C1,MATCH(TempTable!RC[-1],OriginalData!$A:$A,0)-1,2,1,1))" 

End With 

End Sub 

내 논리는 'Usdrws'변수 다음 입력 공식을 사용하여 전체 범위를 선택하는 것입니다.

나는 현재

런타임 오류 1004

+2

C1로 변경

  • R1C1에"''합니다 "" ""'공식 – JohnyL

  • +0

    감사 JohnyL에, 나는 아직도 받고 있어요 같은 오류가 있지만 확실히 수정이 필요한 것입니다. – jufg

    +0

    또한 'R1C1' 표기법을 사용하지만 수식에'$ A $ 1 '이 (가) 있습니다. 'R1C1'으로 변경하십시오. – JohnyL

    답변

    1

    수식에서 다음을 변경해야합니다.

      01 수식에 """"-
    1. 변경 ""
    2. 변경 $A$1A:A "`변경
    1

    받고 있어요 모든 것이 VBA

    에 speechmarks에
    .Range(.Cells(1, 1), Usdrws.Offset(, 1)).FormulaR1C1 = _ 
    "=IF(OFFSET(OriginalData!$A$1,MATCH(TempTable!RC[-1],OriginalData!$A:$A,0)-1,2,1,1)=0,"""",OFFSET(OriginalData!$A$1,MATCH(TempTable!RC[-1],OriginalData!$A:$A,0)-1,2,1,1))" 
    
    때문에 당신은 당신의 수식에 음성 표시를 탈출해야
    +0

    나는 당신이 "큰 따옴표"를 의미한다고 생각한다 –

    +0

    OP에는'$ A $ 1 ', 즉 절대 참조가 있기 때문에'RC [-1]'은 부정확 한 참조이다. – JohnyL