2017-11-29 4 views
2

안녕하세요!다국어 Excel VBA 매크로 (프랑스어/영어/스웨덴어)

스웨덴의 Mac에서 영어로 매크로를 만들었습니다. 이 매크로는 프랑스어로 Excel에서 프랑스어로 사용되는 Mac에서 실행됩니다. 모든 서브 루틴은 잘 작동하지만 ... 하나. 저는 "= VALUTA (123,4567)"[통화의 스웨덴어] 수식을 사용하여 2 자릿수로 자른 다음 텍스트로 변환해야합니다. 해당 프랑스어 수식은 "= DEVISE (123,4567)"이며, 지금 사용하고 있습니다. VBA 매크로를 사용하여이 수식으로 전체 열을 채우지 만 결과는 "NOM?"입니다. [이름?]; 하나는 Excel이 DEVISE()를 인식하지 못한다고 생각할 것입니다.

그러나 실제로이 질문에 답하기 위해이 셀 중 하나를 선택하고 RETURN (수동으로)을 누르면 공식을 인식하여 123,45를 인쇄합니다 !!!

나는 아주 좌절하고있다. 해결책을 향한 어떤 조언도 크게 감사 할 것입니다. 고맙습니다.

+0

매우 실망 스럽습니다. 필자는 국제 버전을 사용한 적이 없지만 그 버전 중 하나에서 허용되는 영어 명령은 무엇입니까? 열을 VBA 매크로로 채우시겠습니까? 나는 당신이 당신의 용어를 혼합하고 있다고 생각합니다. 당신이 개발 한 매크로의 이름은 무엇입니까? 사용할 수없는 특정 이름이 있으며 'NOM'오류는 나쁜 이름이나 알 수없는 이름을 나타냅니다. VALUTA/DEVISE를 잘못 사용하고 있다고 생각하지 않습니다. CURRENCY는 영어 기능의 이름이 아닙니다. 코드를 추가 할 질문을 편집 할 수 있습니까? 또한 Google은 구문 (사용법) VALUTA & DEVISE을 찾고 여기에 링크를 게시 하시겠습니까? – ashleedawg

+0

고맙습니다. 코드는 매우 간단합니다 : '값을 가져 와서 두 개의 십진수로 된 "텍스트"로 변환하십시오 (위에서 작성한대로 작동) ActiveSheet.Range ("AL13 : AL129") 수식 = "= DEVISE (C13)" ActiveSheet.Range ("AM13 : AM129") 수식 = "= DEVISE (F14)" 스웨덴어 버전 (내 Mac에서 잘 작동 함) : ActiveSheet.Range ("AL13 : AL129") 수식 = "= VALUTA (C13) " ActiveSheet.Range ("AM13 : AM129 ") 수식 ="= VALUTA (F14) " 여기를 보니 너무 친절합니다. https://fr.excel-translator.de/translator/ – JSP

답변

0

나는 그것을 할 방법을 찾았습니다. 이 코드는 ROUNDDOWN()을 2 소수점 이하 자릿수까지 사용합니다. [OK]이지만 DEVISE()가 아닌 프랑스어 Excel에서도 사용할 수 있습니다. 그 후 두 개의 십진수로 값을 얻기 위해 연결을 사용합니다. ROUNDDOWN()을 사용하지 않으면 결과는 "Place : 2.34567"이됩니다. 내가 할 수있는 최선입니다

ActiveSheet.Range("A5").Formula = "= LOOKUP(2,1/(H:H>1),H:H)" ActiveSheet.Range("AJ138")=ROUNDDOWN(A5,2) ActiveSheet.Range("AQ13:AQ129").Formula = "=""Place: ""&AJ13&"

을 : 그래서 내가 지금 가지고있는 것입니다. 응답 해 주셔서 감사합니다. 조회 기능에서 찾은 주소를 얻는 방법에 대해 다른 질문을 게시 할 것입니다.