현재까지의 VBA 문자열 | Excel VBA에서 문자열 값을 날짜로 변환

현재까지 Excel VBA 문자열

Vba에는 주어진 문자열을 날짜로 변환 할 수있는 방법이 있습니다. 그 방법은 vba에서 CDATE 함수로 알려져 있습니다. 이것은 VBA의 내장 함수이며이 함수에 필요한 부분은 먼저 문자열을 다음으로 변환하는 것입니다. 숫자를 입력 한 다음 주어진 숫자를 날짜로 변환합니다. 결과 형식은 시스템 날짜 형식에만 의존합니다.

우리 모두가 엑셀로 직면하는 일반적인 문제 중 하나는 "날짜 및 시간"이며 종종 텍스트 값으로 저장되고 처음에는 눈에 띄지 않게됩니다. 그러나 그들이 그 시간을 사용해야 할 때 우리는 그 값이 텍스트로 저장된다는 것을 알게 될 것이고 그것들을 다루는 방법을 전혀 알지 못할 것입니다. "날짜와 시간"은 하나의 요소에 결합 된 두 가지 항목이지만 이러한 값이 텍스트 값으로 저장되면 작업하기가 어렵습니다.

문자열 값을 날짜로 변환하는 방법?

여기에서이 VBA 문자열을 날짜 Excel 템플릿으로 다운로드 할 수 있습니다 – VBA 문자열을 날짜 Excel 템플릿으로

예 1

VBA 변수가 선언되고 문자열로 할당되면 해당 변수에 할당 된 모든 항목은 문자열로만 처리됩니다. 예를 들어 아래 코드를보십시오.

암호:

 Sub String_To_Date () Dim k As String k = "10-21"MsgBox k End Sub 

위 코드 변수 "k"에서 "String"데이터 유형으로 정의되었으며이 변수에 대해 "10-21"로 값을 할당했습니다.

좋아, 코드를 실행하고 VBA의 메시지 상자에 무엇이 있는지 살펴 보자.

값은 10-21로만 얻었지만 일반적으로 이러한 값은 문자열 값이 아니라 날짜입니다. 따라서 할당 된 데이터 유형이 "String"인 경우에도 데이터 유형 변환 함수 CDATE VBA를 사용하여 날짜로 변환 할 수 있습니다.

암호:

 Sub String_To_Date () Dim k As String k = "10-21"MsgBox CDate (k) End Sub 

위의 메시지 상자에 "k"변수의 결과를 표시하기 전에 CDATE 함수를 할당했습니다. 약간의 조정이 이루어 졌으므로 얼마나 큰 영향을 미치는지 살펴 보겠습니다.

이제 결과가 더 이상 "문자열"값이 아닌 "날짜"로 표시됩니다.

예제 # 2

이제 아래 코드를 살펴보십시오.

암호:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub 

이 시점에서 위의 코드는 위에서 지정한대로 결과가 "43599"로 표시됩니다.

그러나 CDATE 함수를 사용하면 날짜 값으로 변환됩니다.

암호:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub 

CDATE 함수를 적용한 결과는 다음과 같습니다.

Excel은 날짜를 일련 번호로 저장했기 때문에 할당 된 일련 번호 43599는 날짜 형식이 적용된 2019/05/14 날짜와 동일합니다.

날짜를 정확하게 읽기 위해 "DD-MMM-YYYY"형식을 날짜에 적용 할 수도 있습니다.

암호:

 Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) MsgBox Format (DateValue, "DD-MMM-YYYY") End Sub 

위의 결과를 저장하기 위해 하나의 추가 변수를 선언했습니다. 이 변수에는 CDATE 변환 기능을 적용했습니다.

다음으로 FORMAT 함수를 사용하여“DD-MMM-YYYY”형식의 형식을 적용했는데 결과는 다음과 같습니다.

이것으로 우리는 일과 월을 명확하게 읽을 수 있습니다. 또한 내 시스템 날짜 형식이 "MM-DD-YYYY"였기 때문에 Excel의 시스템 날짜 형식에 따라 달라 지지만 형식을 방해해서는 안됩니다.

예제 # 3

이제 실제로 워크 시트 셀에서 날짜 형식이 텍스트 값으로 지정되는 방식을 살펴 보겠습니다. 아래는 워크 시트에 텍스트로 저장된 날짜의 이미지입니다.

A2에서 A12까지의 A 열에는 날짜를 찾는 값이 있지만 형식 탭을 보면 "텍스트"형식이 표시됩니다. 이제 이러한 값을 텍스트에서 날짜로 변환해야합니다.

Below is the code I have written to convert the text-formatted date values to actual dates.

Code:

 Sub String_To_Date2() Dim k As Long 'Data is in more than one cell, so need to loop through each cell 'Open For Loop For k = 2 To 12 'Data starts from 2nd row and ends at 12th row, so 2 to 12 Cells(k, 2).Value = CDate (Cells(k, 1).Value) Next k End Sub 

If you run the code it will give us the below result.

Things to Remember

  • CDATE is a data type conversion function but can be used to convert VBA string stored date to actual date values.
  • The result of the CDATE function format depends on system date format only.
  • Dates are stored as serial numbers in excel, so formatting is required to show them as dates.