2014-10-17 9 views
1

날짜 유형으로 간단한 작업을하려고하지만 원하는 것은 내가 원하는 것이 아닙니다. 구분 기호로 일부 셀 값을 분할하고 문자열 값을 DateValue 메서드로 반환하고 싶습니다.문자열로 날짜를 만드는 VBA

내 코드 내가 어떤 특정 날짜 형식을 얻고있다 할 노력하고있어 무엇

Dim str2() As String 
str2() = Split(Cells(ActiveCell.Row, 7).Value, ".") 

Dim date1 As Date 
date1 = DateValue(str(0) & "-" + str(1) & "-" & str(2)) 

. 셀의 날짜는 다음과 같이 형식화됩니다. 26.05.14 (day.month.year)이고 2014-05-26 (year-month-day)와 같은 형식을 원합니다. 그게 다야. DateValue 메서드는 2000-01-02 날짜를 반환합니다. Split 메서드 다음에 어떤 값이 있는지 보려면 str2() 배열을 어떻게 볼 수 있습니까? 어떻게해야합니까?

VBA가 VB.NET과 완전히 다른 것 같습니다. VBA에 익숙하지 않은 것 같습니다. 감사합니다

+0

무엇이'Cells (ActiveCell.Row, 7) .Value' 반환 무엇입니까? 시도해 볼 수 있습니다 :'date1 = CDate (셀 (ActiveCell.Row, 7) .Value, ".", "/"))' –

+0

'셀 (ActiveCell.Row, 7)을 반환하는 것을 어떻게 확인할 수 있습니까? 가치'? 'str2()'위로 마우스를 가리키면 Split 메서드를 실행 한 후에 아무 것도 프롬프트되지 않습니다. 반면에 나는 다음과 같은 값을 보려고 할 때 :'Dim strCheck1 As String strCheck1 = str2 (0)'그것은 아래 첨자가 범위를 벗어남 " –

+0

'date1 = CDate (Replace (Cells (ActiveCell .Row, 7) .Value, ".", "/"))' "유형 불일치"오류가 발생합니다. –

답변

0

"str2"로 나누기의 결과를 저장하고 있지만 변수에 "str"을 사용하여 코드에 정의되지 않은 (즉 비어있는) DateValue 입력을 저장합니다. "Option Explicit"을 프로젝트 상단에 놓음으로써 이러한 종류의 실수를 피하십시오. VBA는 VB.NET과 같이 필수는 아니지만 실제로는 선택 사항입니다. 여기에 코드 작동 :

Dim str2() As String 
str2 = Split(Range("A2").Value, ".") 

Dim date1 As Date 
date1 = DateValue(str2(0) & "-" + str2(1) & "-" & str2(2)) 
+0

맞습니다 ... 제 실수. 감사 –

관련 문제