2013-08-07 2 views
0

나는 년을 제대로 인식하지 못하는 것에 문제가있다. NP, 그것은 2014 년 박았 : 여기 년 n + 1 <년 n excel vba에서

은 열 D는 dd-mm-yy
셀 코드가 날짜별로 정렬 순서 필요 (1,10) = now()

이 형식의 날짜 가득 내 코드

' Sort value 
max = Sheets("booking").Cells(Rows.count, "A").End(xlUp).Row 
Range("A1:H" & max).Select 
ActiveWorkbook.Worksheets("Booking").Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Booking").Sort.SortFields.Add Key:=Range("D2:D" & max) _ 
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal 
ActiveWorkbook.Worksheets("Booking").Sort.SortFields.Add Key:=Range("A2:A" & max) _ 
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
With ActiveWorkbook.Worksheets("Booking").Sort 
    .SetRange Range("A1:H" & max) 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

' mark past booking in italic and in red if not validated 
For L = 2 To max 
    If Format(CDate(booking.Cells(L, 5).Value), "dd-mm-yy") < Format(CDate(cells(1,10).value), "dd-mm-yy") Then 
     booking.Cells(L, 5).EntireRow.Font.Italic = True 
      If booking.Cells(L, 5).Offset(0, 3).Value = "" Then 
       booking.Cells(L, 5).EntireRow.Font.Color = vbRed 
      Else 
       booking.Cells(L, 5).EntireRow.Font.Color = vbBlack 
      End If 
    End If 
Next L 

입니다 2013 개 주문

BUT

대구를 앞 수주 e는 < 날짜에 기울임 꼴 형식을 적용합니다. 2014 주문은 과거로 간주되고 코드는 기울임 꼴로 표시합니다.

무엇이 잘못 되었나요?

+0

날짜를 비교하는 데 "형식"을 사용하면 안됩니다. 당신은 단지 할 필요가 없으며 아마 모든 것을 망칠 것입니다. – JMax

답변

0

For 루프에서 날짜를 문자열로 비교한다는 것은 분명합니다. 그래서 나는 다른 결과를 얻는다는 것에 놀라지 않을 것입니다. 당신은 관련이없는 노트에

If booking.Cells(L, 5).Value < booking.Cells(1,10) Then 

If Format(CDate(booking.Cells(L, 5).Value), "dd-mm-yy") < Format(CDate(cells(1,10).value), "dd-mm-yy") Then 

을 변경해야합니다, 당신의 If 문의 두 번째 부분에서 변수 cells의 가치는 무엇인가? 앞에 booking.을 쓰는 것을 잊었습니까?

+0

당신의 도움에 대한 Thx지만 실제로 ... 내가 거의 인정하지만 부끄러워.하지만 내 오류는 형식 (기울임 꼴 및 색상)이 재설정되지 않았다고 생각하지 않고 테스트를 위해 사용했던 줄을 삭제하는 것입니다. !! !! 이제는 모든 라인을 일반 포맷으로 변환했습니다. MIRACLE이 작동합니다 .- !! 어쨌든 당신의 도움을 위해 Thx !! – Kespell