평가가있는 수식이 테스트 통합 문서에서 정상적으로 작동합니다. 모든 결과가 좋습니다.VBA - 반환 값 # VALUE
정확히 일치 코드은 (다른 매크로가 포함 된) 통합 문서에서 #Value를 반환합니다. 오류 코드는 2029입니다. 또한 코드에서 결과를 얻는 수식을 시트에 넣을 때 (디버깅 할 때 또는 직접 코드에서) 셀에서 Ctrl + Shft + Enter를 수행하면 결과가 정확합니다. 수식이 어디에 있는지.
결과적으로, 내가 이해하는 것은 수식이 Application.Evaluate에 의해 평가되지 않는다는 것입니다. 가능한 원인에 대한 힌트가 있습니까? 다음은 당신이 비슷한 문제에 직면하는 경우
Const TEMPLATE = "=INDEX({0},MATCH(1,({1}={2})*({3}={4}),{5}))"
Const MATCH_TYPE = 0
Dim originalReferenceStyle
originalReferenceStyle = xlA1
Application.ReferenceStyle = xlR1C1
Dim myFormula As String
myFormula = Replace(TEMPLATE, "{0}", amountRange.Address(External:=True))
myFormula = Replace(myFormula, "{1}", accountRange.Address(External:=True))
myFormula = Replace(myFormula, "{2}", accountCriteria.Address(External:=True))
myFormula = Replace(myFormula, "{3}", dateRange.Address(External:=True))
myFormula = Replace(myFormula, "{4}", dateCriteria.Address(External:=True))
myFormula = Replace(myFormula, "{5}", MATCH_TYPE)
myIndexMatch = Application.Evaluate(myFormula)
평가 라인 전에이'msgbox myformula'을 넣고 기대했던 것처럼 보이는지 확인하십시오. 그런 다음 복사하여 셀에 붙여넣고 작동하는지 확인하십시오. –
http://stackoverflow.com/q/27590768/11683에 따르면 작동해야합니다. – GSerg
감사하지만 동일한 코드가 다른 시트에서 완벽하게 작동합니다. 평가는 잘 작동하지만 다른 매크로와 함께 사용해야하는 스프레드 시트에서는 작동하지 않습니다. 코드에 의해 계산 된 수식을 가로 채면 올바른 것입니다. 복사하여 붙여 넣기하면 Ctrl + Shift + Enter를 누르면 올바른 결과를 얻을 수 있습니다. – Dominique