저는 주로 IDispatch::Invoke
을 사용하는 COM 인터페이스를 사용하여 기본 Excel 자동화를 사용하여 놀았습니다.Excel 자동화에서 지역화되지 않은 수식 사용
내 테스트에는 새로 만든 Excel 문서에서 수식을 추가하는 것이 포함되었습니다. 고안 랩퍼 라이브러리를 사용하면, 그것은 다음과 같습니다
sheet.getObject("Range", "A1").set("Value", 23);
sheet.getObject("Range", "A2").set("Value", 42);
sheet.getObject("Range", "A3").set("Formula", "=SUMME(A1:A2)"); // WTF?
공지 사항 : 내가 대신 예상대로 식별자 SUM
의 여기 (독일어) 지역화 식 이름 SUMME
을 사용하고 있습니다. Excel에서 매크로 레코더를 사용하여 동일한 작업을 수행 할 때 생성 된 VBA 코드는 SUM
입니다. 내 C++ 코드에서 SUM
을 사용하면 Excel에서 #NAME?
오류가 발생합니다.
반환 또는 A1 스타일 참조 사용자의 언어로 를 사용하여 대상의 수식을 설정 : 마이크로 소프트의 documentation for the
Range.FormulaLocal
Property은 다음을 말한다.
(강조 표시)
그래서 FormulaLocal
대신 Formula
을 사용하여 이러한 현지화 문제를 해결할 수 있기를 기대했지만 사실은 그렇지 않습니다.
지역화되지 않은 수식을 사용할 수있는 방법이 있습니까? 나는 숨겨진 곳이 있다고 생각합니다. 내가 발견 한 내용을 문서로 답변을 추가
네, 저에게 좋습니다. 저는 스페인어로 Excel을 사용하고 있으며 속성 수식에 영어 이름이 할당되어 작동합니다.숨겨진 설정은 없지만 이전 Excel 버전에서는 작동하지 않는다는 것을 기억합니다 (이전의 12 세 이전, 꽤 오래된 버전). –
@ CarlosE.Ferro "12"는 Office 12라고도하는 Office 2007을 의미합니까? Excel 2010을 사용하고 있습니다. – mkluwe
예, 꽤 오래되었다고 말씀 드렸습니다. Excel 2007에서 작동하므로 왜 작동하지 않는지도 모르겠습니다. 죄송합니다 :-( –