이탈리아어에서 영어로 VBA 단어 엑셀 사이의 날짜 형식 출격


2

매크로를 사용하여 단어 문서에서 날짜를 추출하고 Excel에 넣었습니다. 날짜 선택 도구 콘텐츠 제어 기능이 있습니다. 내 PC의 로캘이 이탈리아어 DD / MM / YYYY로 설정되어 있고, 날짜 선택 단어 로캘이 이탈리아어 DD / MM / YYYY로 설정되어 있습니다. 내 날짜 선택기에서 날짜가 예를 들어 08/06/2017로 표시됩니다. 이제는 다음을 사용합니다.

Activeworkbook.Sheets("Sheet1").Range("A1") = objwdDoc.ContentControls(12).Range.Text

하지만 나는 06/08/2017을 얻는다 :

Activeworkbook.Sheets("Sheet1").Range("A1") = format(objwdDoc.ContentControls(12).Range.Text, "DD/MM/YYYY")

하지만 나는 06/08/2017과 같은 날짜를 얻습니다.

내가 사용하면 :

Activeworkbook.Sheets("Sheet1").Range("A1") = format(objwdDoc.ContentControls(12).Range.Text, "MM/DD/YYYY")

나는 실제로 올바른 날짜를 얻는다

다음과 같은 변수를 사용하여 vba 코드를 확인합니다.

date1 = format(objwdDoc.ContentControls(12).Range.Text, "MM/DD/YYYY")

    Activeworkbook.Sheets("Sheet1").Range("A1") = date1

디버그에서 내 date1 변수가 정확합니다 : 08/06/2017

Excel A1 tho를 체크인하면 2017 년 6 월 8 일에 셀이 "짧은 날짜, dd / MM / YYYY"와 같은 형식으로 표시됩니다)

왜?


textExcel이 되려고하지 않도록 셀의 형식을 지정해야하는지 궁금 합니다.clever
Dave

좀 더 복잡 할 수 있지만 먼저 날짜 문자열을 날짜 변수로 변환하고 변수 값으로 셀 값을 설정하는 것이 좋습니다. 이렇게하면 코드를 올바르게 사용하여 올바른 값을 설정할 수 있습니다. 워크 시트에 여전히 잘못된 날짜가 표시되면 셀 번호 형식을 "기본 날짜"로 수동 및 코드 방식으로 명시 적으로 설정하여 디버깅을 시작할 수 있습니다. 결국 글리치 자체가 드러나야합니다.
Vince42

답변:


0

날짜 문제를 해결하는 방법에는 두 가지가 있습니다 (아일랜드어 날짜 형식은 이탈리아어와 동일 함). 이는 미국 형식이 MM / DD / YYYYY이고 때로는 기본 형식으로 돌아갈 수 있기 때문입니다. 이를 방지하기 위해 다음을 수행합니다 (가능한 경우).

  1. Excel 시트가 형식을 손상시키지 않도록 읽기 위해 yyyyMMdd로 변환하고 정수로 저장하십시오.
  2. Excel로 다시 쓸 때 올바른 모양을 유지하기 위해 독일어 형식을 사용합니다. 독일어 형식은 사람들이 읽고 이해할 수 있지만 독일어 이외의 설정에서는 날짜로 인식하지 못합니다 (예 : DD.MM.YYYY)

해결 방법으로는 그다지 해결책이 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.