2016-06-30 1 views
0

두 문서에서 같은 값이 발견되면 두 시트의 열을 sse와 비교하는 스크립트를 만들었습니다.다른 시트가 작동하지 않음을 나타내는 VBA를 통해 수식을 삽입하십시오. 대안이 필요합니다

두 개의 문서 중 하나에 VBA를 통해 수식을 삽입하면됩니다.

공식은 : =IF(ISNA(MATCH(A1;'[Filename]SheetName'!$B:$B;0));"NO MATCH","MATCH")

문제는 SheetNameSheet(insert number here)보다는 다른 어떤 경우 스크립트가 실행되지 않는다는 것입니다. 나는 그것이 시트를 인식하지 못하는 이유를 모르지만 이것에 대한 해결 방법이 필요합니다.

VBA 스크립트 :

Formula1 = "=IF(ISNA(MATCH(" & Chr(col1 + 64) & MyCell1 & ",'[" & fi2 & "]" & SheetName & "'!$" & Chr(col3 + 64) & ":$" & Chr(col3 + 64) & ",0)),""NO MATCH"",""MATCH"")" 

Formula2 = "=IF(" & Chr(col1 + 65) & MyCell1 & "=""NO MATCH"",""-"",IF(INDEX('[" & fi2 & "]" & SheetName & "'!$" & Chr(col4 + 64) & ":$" & Chr(col4 + 64) & ",MATCH(" & Chr(col1 + 64) & MyCell1 & ",'[" & fi2 & "]" & SheetName & "'!$" & Chr(col3 + 64) & ":$" & Chr(col3 + 64) & ",0))=" & Chr(col21 + 63) & MyCell1 & ",""MATCH"",""NO MATCH""))" 

With Range(myRange1) 

     .NumberFormat = "General" 
     .Value = Formula1 
     .Value = .Value 
     .HorizontalAlignment = xlCenter 
     .ColumnWidth = 27 

End With 

With Range(myRange2) 

     .NumberFormat = "General" 
     .Value = Formula2 
     .Value = .Value 
     .HorizontalAlignment = xlCenter 
     .ColumnWidth = 27 

End With 
+0

때때로 열 번호에 65를 추가하는 경우가 아니라 (때로는 64 또는 63) (R1C1 참조가 더 쉬울 수도 있음) 외의 다른 코드는 나에게 좋아 보인다. 실제로 다른 시트 이름은 어떻게됩니까? – Rory

+0

어떤 변수를 사용하고 있는지 설명해 주시겠습니까? (ie'fi2') – RGA

+0

vba를 사용하여 실제 작동하는지 확인하기 전에 셀에서 직접 방향을 테스트해야합니다. – phil652

답변

0

SheetName 만약 내가 전에 통합 문서 및 워크 시트 이름 후 '에 대해 확실하지 오전하는 WorkSheet 다음 수식에 당신은 또한 SheetName.Name 를 작성해야합니다.

+0

시트 이름은 스크립트의 앞부분에있는 'SheetName = ActiveSheet.Name'에 따라 정의됩니다. '''s에 관해서 나는''Formula1''과''Formula2''가 크로스 파일 공식이 어떻게 생겼는지 보려고했습니다. –

+0

확인. 이전에 귀하에게 물어 보았 듯이 : 귀하의 변수가 무엇을 언급하는지 알려주실 수 있습니까? (MyCell1, fi2, SheetName, ...)이 코드가 없으면 우리는 당신과 같은 맥락에서 코드를 시도하고 실행할 수 없으므로 문제가 무엇인지 추측하기가 어렵습니다. 또한, "스크립트가 실행되지 않는다"는 말은 런타임 오류, 컴파일 오류 등을 의미합니까? –

관련 문제