
우리 회사는 보고 도구를 구축하고 있으며 내보내기 형식 중 하나가 Excel입니다. Excel 파일을 생성할 때 고객이 다른 국가에서 왔기 때문에 우리는 로케일 형식을 사용하여 다음 형식을 사용하여 날짜를 표시합니다.
[$-<locale here>]mmmm d, yyyy;@
따라서 셀의 날짜가 31/03/2020이고 로케일이 아일랜드로 설정된 경우 2020년 3월 10일로 표시되지만 로케일이 스페인으로 설정된 경우 2020년 3월 10일로 표시됩니다.
2020년 3월 31일 날짜가 2020년 3월 8일로 표시되어 작동하지 않는다는 고객 보고를 받았습니다.
자세히 조사한 결과 해당 포맷터가 다음과 같이 나열되어 있음을 확인했습니다.
[$-,F]mmmm d, yyyy;@
나는 실제로 Excel에서 구문 분석을 시도하는 것이 무엇인지 또는 해당 가짜 날짜를 표시하기 위해 사용하려고 시도하는 달력 또는 날짜 포맷터가 소용이 없는지 찾으려고 노력했습니다. 분명히 고객의 로케일을 더 잘 식별해야 하지만 고객의 컴퓨터에 이상한 로케일이 있거나 가짜 코드가 있기 때문에 이것이 발생할 수 있는지 궁금합니다.
이 문제는 Excel 2013에서 발생했지만 Excel 365에서도 재현할 수 있었습니다. 또한 F의 16진수 값과 연결된 국가 코드를 찾으려고 시도했지만 아무 소용이 없었습니다. 이 ,
제거되면 포맷터는 F를 프랑스 코드로 식별하고 프랑스어로 올바른 날짜 번호(2020년 3월 30일)를 표시합니다.
답변1
내가 알 수 있는 한 , 이는 날짜를 음력으로 변환하는 것과 [$-,F]
동일합니다 .[$-F0000]
나는 같은 상황에서 다른 모든 글자들이 무엇을 나타내는지 보고 싶어서 이렇게 썼습니다:
Sub formatdates()
Dim ws As Worksheet
Set ws = Sheet1
Dim i As Integer
i = 1
Do While i < 27
ws.Cells(i, 1) = "=TODAY"
ws.Cells(i, 1).NumberFormat = "[$-," & Chr(64 + i) & "]dddd, mmmm dd, yyyy"
ws.Cells(i, 2) = "[$-," & Chr(64 + i) & "]dddd, mmmm dd, yyyy"
ws.Cells(i, 3) = ws.Cells(i, 1).NumberFormat
i = i + 1
Loop
End Sub
빈 통합 문서에서 사용할 수 있습니다. 게시물의 [$-,F]와 유사하게 사용되는 형식 코드로 로마 알파벳의 각 문자를 사용하여 현재 날짜를 표시합니다. 더 많은 내용이 있을 것이라고 확신하지만 이것들은 조금 더 자세히 알아볼 수 있을 만큼 유익했습니다.
예를 들어
- [$-,F]는 음력을 제공하지만 영어로 표시되므로 5번째 달은 6월로 표시됩니다.
- [$-,G]가 당신에게 인도 민간 달력을 줄 것입니다.
- [$-,M]이 당신에게 페르시아 달력을 줄 것입니다.
- [$-,N]이 회교식 달력을 드립니다
나는 또한언어 코드 목록@DavidPostill이 자신의 댓글에 포함시킨 링크에서더 완전한 목록이 있는 다른 사람들제 생각에는 국가 코드도 사용할 수 있습니다).
위 주석에 있는 링크의 코드 표를 Sheet2에 넣고 위의 첫 번째 함수로 생성된 표의 맨 아래에 추가하도록 작성했습니다.
Sub formatdates2()
Dim ws As Worksheet
Set ws = Sheet1
Dim i As Integer
Dim r As Integer
r = 1
i = 28
Do While Sheet2.Cells(r, 1) <> ""
ws.Cells(i, 1) = "=TODAY()"
ws.Cells(i, 1).NumberFormat = "[$-" & Sheet2.Cells(r, 1) & "]dddd, mmmm dd, yyyy"
ws.Cells(i, 2) = "[$-," & Sheet2.Cells(r, 1) & "]dddd, mmmm dd, yyyy"
ws.Cells(i, 3) = ws.Cells(i, 1).NumberFormat
ws.Cells(i, 4) = Sheet2.Cells(r, 2)
i = i + 1
r = r + 1
Loop
End Sub
내가 아는 한, 언어 코드(후자의 목록/함수)가 있고 달력 코드(전자의 함수)가 있습니다.
나는 당신이 언어 코드를 찾고 있다고 생각합니다.
[$-x-sysdate]
그러나 단순히 셀 서식 대화 상자의 "날짜" 아래 목록에서 필요한 형식을 선택한 다음 "사용자 정의" 목록에서 동일한 형식을 볼 때 표시되는 코드인 를 사용하면 더 큰 성공을 거둘 수 있습니다 .