날짜가 유효하지 않거나 12.26.2016 개월이 없음을 알리기 위해 26 년 12 월 2016 일 또는 26 년 XNUMX 월 XNUMX 일 (영국 형식)로 제공된 스프레드 시트에서 날짜를 얼마나 자주 가져 옵니까? 이 기사에서는 TRIM, LEFT, RIGHT 및 MID 함수를 사용하여 VBA로 날짜를 수정하는 방법을 살펴 봅니다.
이 기사에서는 독자에게 개발자 리본이 표시되고 VBA 편집기에 익숙하다고 가정합니다. 그렇지 않은 경우 Google "Excel 개발자 탭"또는 "Excel 코드 창"을 사용하십시오.
이 연습의 xlsm은 다운로드 할 수 있습니다. 여기에서 확인하세요.
우리의 문제가 아닙니다!

사실 우리는 그것이 기계가 읽을 수 없다는 것을 증명할 수 있습니다. 예를 들어, 날짜에 7 일을 추가합니다.
"=01.01.2017 + 7" = #VALUE. "=2017.01.01 + 7" = #VALUE.
이므로…
"=2017-01-01 + 7" = 2017/01/08.
그들이 문제가 아니라고 제안한다고 가정합시다.
날짜 형식
가장 먼저 확인해야 할 것은 날짜가 미국 또는 국제 형식인지 여부입니다.
우리의 예는 우리가 미국 사용, 즉 국제 형식 DMY보다는 MDY를보고 있음을 분명히합니다.
소스를 설정 한 후에는 데이터 형식을 변경하여 국제적 으로든 미국에서든 Excel이이를 이해할 수 있도록해야합니다.
이를 수행하는 가장 좋은 방법은 날짜를 제한이 필요없는 형식 인 yyyymmdd로 변경하는 것입니다.
과정
문서의 각 행을 순환하면서 소스 국가에 따라 날짜를 "수정"하는 함수를 호출합니다. 날짜가 수정되면 직원의 나이를 계산합니다.
코드
다음 코드를 새 모듈에 복사합니다.
Option Explicit
Sub Main()
Dim strNewFormat As String
Dim strDate As String
Sheets("Main").Range("B4").Select
'Cycle through the sheet rows, using IDNumber as an anchor
'to prevent a premature halt caused by a blank date of birth
Do While ActiveCell > ""
If ActiveCell.Offset(0, 2) > "" Then
strDate = ActiveCell.Offset(0, 2)
'Remove leading or trailing spaces
strDate = Trim(strDate)
'Call the function
strNewFormat = ReformatDate(strDate, "USA")
'Write the result from the function ReformatDate to a new column
ActiveCell.Offset(0, 3) = strNewFormat
'Determine age by subtracting the previous column from today's date
ActiveCell.Offset(0, 4) = "=(NOW()-RC[-1])/365.25"
'Convert to intger, thus lopping off decimal places
ActiveCell.Offset(0, 4) = Int(ActiveCell.Offset(0, 4))
End If
Range("B" & ActiveCell.Row + 1).Select
Loop
End Sub
Function ReformatDate(sDate As String, sSource As String)
Dim yyyy, mm, dd As String
yyyy = Right(sDate, 4)
If sSource = "USA" Then
mm = Left(sDate, 2)
dd = Mid(sDate, 4, 2)
Else
mm = Mid(sDate, 4, 2)
dd = Left(sDate, 2)
End If
ReformatDate = yyyy & "-" & mm & "-" & dd
End Function
양식에 단추를 추가하고 Sub Main에 지정하십시오.
경고
모듈에 너무 많은 복잡한 코드를 추가하기 전에 Excel이 주요 응용 프로그램 개발에서 항상 안정적인 것은 아니며 손상된 코드 자체를 복구 할 수없는 경우가 많습니다. 그 결과 "저장"에서 손상이 발생하기 때문에 유일한 사본이 손상 될 수 있습니다.
자주 백업하고 도구를 사용하여 수정하십시오. Excel 파일 손상.
저자 소개 :
Felix Hooker는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. 수리 rar 파일 손상 및 SQL 복구 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM
